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

Python 3.9中datetime.datetime支持tzinfo但datetime.time不支持的问题

Python 3.9中datetime.datetime与datetime.time的tzinfo支持差异

在Python 3.9中,datetime.datetime对tzinfo的支持符合预期,但datetime.time处理时区信息时存在异常表现。

import datetime
from zoneinfo import ZoneInfo

dta = datetime.datetime.now(tz=ZoneInfo("America/Los_Angeles"))
dtp = datetime.datetime.now(tz=ZoneInfo("Europe/Paris"))

da10 = datetime.time(10, 0, tzinfo=ZoneInfo("America/Los_Angeles"))
dp10 = datetime.time(10, 0, tzinfo=ZoneInfo("Europe/Paris"))

# datetime.datetime可正确返回tzname,且正确判定不同时区的实例不相等
>>> dta.tzname()
'PDT'
>>> dtp.tzname()
'CEST'
>>> dta == dtp
False

# datetime.time无法返回tzname,且错误判定不同时区的实例相等
>>> da10.tzname()
>>> dp10.tzname()
>>> da10 == dp10
True

两者表现对比

  • datetime.datetime

    • 可通过tzname()正确返回对应时区名称
    • 不同时区的实例比较结果符合预期(返回False)
  • datetime.time

    • 调用tzname()无法返回有效时区名称
    • 不同时区的实例比较错误返回True,未正确区分时区差异

内容的提问来源于stack exchange,提问作者Nmhor Kmhor

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.18 01:59:53