系统时钟为UTC时如何用Python time模块获取经DST调整的本地时间
仅用Python time模块获取带夏令时调整的本地时间
你遇到的localtime返回UTC的问题,原因是系统默认时区配置指向UTC,只需要手动指定目标本地时区后重载时区配置即可,全程无需用到datetime模块。
具体操作步骤:
- 先修改系统环境变量
TZ为你目标时区的标准标识符,中国大陆可填Asia/Shanghai,美东时区可填America/New_York - 调用
time.tzset()方法重载时区配置,该方法会自动加载对应时区的规则,包含夏令时的切换逻辑 - 直接调用
time.localtime()即可返回经夏令时调整后的本地时间,返回的struct_time结构体中tm_isdst值为1表示当前已应用夏令时,为0表示未应用。
示例代码:
import time import os # 替换为你所在地区的时区标识符 os.environ['TZ'] = 'Asia/Shanghai' # 重载时区配置,加载夏令时规则 time.tzset() # 获取带夏令时调整的本地时间 adjusted_local_time = time.localtime() # 格式化输出时间 print(time.strftime("%Y-%m-%d %H:%M:%S", adjusted_local_time)) # 查看夏令时生效状态 print(f"夏令时是否生效:{adjusted_local_time.tm_isdst == 1}")
注意:Windows环境下部分旧版本Python的
tzset方法需使用Windows标准时区名,例如中国大陆对应China Standard Time,如使用IANA时区名不生效可替换为对应Windows时区名尝试。
内容的提问来源于stack exchange,提问作者Schorschi
相关产品推荐
相关产品推荐

