Python使用datetime配合pytz时时间无法更新该如何解决?
问题原因
date是静态字符串类型变量,仅会在赋值语句执行的那一刻完成一次计算,值就固定为执行瞬间的时间格式化结果。如果后续只调用打印date变量,没有重新执行「获取当前UTC时间→转换为希腊时区→格式化」的完整逻辑,变量值不会自动更新,就会出现时间始终停留在首次赋值时刻的问题。
解决方法
将时间获取、时区转换、格式化的逻辑封装为可重复调用的函数,每次需要获取最新时间时直接调用函数即可。
示例代码如下:
from datetime import datetime from pytz import timezone # 常量提前声明,避免重复初始化消耗性能 TIME_FORMAT = "[%B %d %H:%M]" GREECE_TIMEZONE = timezone('Europe/Athens') def get_current_greece_time() -> str: utc_now = datetime.now(timezone('UTC')) greece_now = utc_now.astimezone(GREECE_TIMEZONE) return greece_now.strftime(TIME_FORMAT) # 需要最新时间时调用函数即可 print(get_current_greece_time())
如果你的场景需要定时刷新时间,也可以搭配循环加延时的逻辑实现:
import time while True: print(get_current_greece_time()) time.sleep(60) # 每分钟刷新一次
内容的提问来源于stack exchange,提问作者d4t44
相关产品推荐
相关产品推荐

