You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.01 09:39:03