python datetime.datetime 尊重 tzinfo 但 datetime.time 不尊重

问题描述 投票:0回答:1

在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 correctly reports tzname and correctly reports 
# different time zone aware datetime.datetimes as unequal

>>> dta.tzname()
'PDT'
>>> dtp.tzname()
'CEST'
>>> dta == dtp
False

# datetime.time does not report tzname and incorrectly reports
# different time zone aware datetime.time as equal

>>> da10.tzname()
>>> dp10.tzname()
>>> da10 == dp10
True

datetime.datetime
正确报告
tzname
并正确报告 不同时区感知
datetime.datetimes
不平等

datetime.time
不报告
tzname
并且报告错误 不同时区意识
datetime.time
同等

python-3.x datetime timezone python-datetime
1个回答
0
投票

datetime.datetime
不同,
datetime.time
对象不完全了解时区。它仅存储
tzinfo
属性,并且不用于比较或其他方法(如
tzname()
)。

© www.soinside.com 2019 - 2024. All rights reserved.