咨询:Python中获取当前秒级时间的冗长代码能否简化?
更简洁的当前时间格式化实现方式
当然有更简洁的写法啦!你的代码里结合了time和datetime模块,还做了字符串切片,其实完全可以简化,下面给你几种更优雅的实现:
方法一:直接用datetime.now()+精准格式化字符串
不需要导入time模块,直接用datetime.datetime.now()获取当前本地时间,然后通过格式化字符串直接指定到秒的格式,省去切片步骤:
import datetime stamp = datetime.datetime.now().strftime('%Y-%m-%d %H:%M:%S') print("\n{}\n".format(stamp)) # Python 3写法,兼容Python 2也可以用原来的print语法
这样一步到位,既减少了依赖,也避免了不必要的字符串操作。
方法二:Python 3.9+专属的极简写法
如果你使用的是Python 3.9及以上版本,可以利用datetime的isoformat方法,直接指定分隔符和时间精度,连格式化字符串都不用写:
import datetime stamp = datetime.datetime.now().isoformat(sep=' ', timespec='seconds') print(f"\n{stamp}\n") # Python 3.6+支持的f-string写法,更直观
isoformat(sep=' ', timespec='seconds')会直接输出YYYY-MM-DD HH:MM:SS格式的字符串,完全符合你的需求,代码更简洁易读。
另外提一句:你原来的print "\n%s\n" %stamp是Python 2的语法,如果是在Python 3环境下运行,需要改成print("\n%s\n" %stamp)(加括号),上面的两种方法里的写法都是兼容Python 3的哦。
内容的提问来源于stack exchange,提问作者gatorback
相关产品推荐
相关产品推荐

