Python中time.strftime赋值后运行全程时间固定,如何获取实时时间?
问题原因
- 你在程序初始化阶段仅执行了1次
time.strftime()时间格式化逻辑,将执行瞬间的时间戳转换为固定字符串赋值给变量t - 后续所有
print(t)操作都是直接读取已经存储好的固定字符串,不会重新获取系统时间,因此输出结果完全一致
解决方法
不需要额外引入其他模块,直接调整代码逻辑,每次需要输出时间时再实时调用时间获取接口即可,更优雅的方式是把时间获取逻辑封装为可复用的函数,修改后的参考代码如下:
import time def get_current_gmt_time(): # 每次调用都实时获取当前GMT时间并格式化 return time.strftime("%a, %d %b %Y %H:%M:%S", time.gmtime()) i=0 print(get_current_gmt_time()) print(get_current_gmt_time()) while i<10000000: i += 1 continue print("***以下语句会输出不同的时间***") print(get_current_gmt_time()) print(get_current_gmt_time()) print(get_current_gmt_time())
补充说明
- 如果需要获取本地时区的时间,把
time.gmtime()替换为time.localtime()即可 - 只要在输出前才执行时间获取的逻辑,就能保证拿到的是当前运行时刻的实时时间
内容的提问来源于stack exchange,提问作者Sachin Koli
相关产品推荐
相关产品推荐

