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
相关产品推荐
相关产品推荐

