>>> import pytz
>>> tz = pytz.timezone('America/Chicago')
>>> dt_naive = datetime(year=2017, month=6, day=6)
>>> dt_aware = tz.localize(dt_naive)
>>> dt_aware.tzinfo == tz
False

这些不同的原因是什么?
>>> dt_aware.tzinfo
<DstTzInfo 'America/Chicago' CDT-1 day, 19:00:00 DST>
>>> tz
<DstTzInfo 'America/Chicago' LMT-1 day, 18:09:00 STD>

最佳答案

pytz 确定时区的键是您传递给创建对象的字符串: 'America/Chicago' 。该键可通过 .zone 属性获得。

>>> tz = pytz.timezone('America/Chicago')
>>> dt_naive = datetime(year=2017, month=6, day=6)
>>> dt_aware = tz.localize(dt_naive)
>>> dt_aware.tzinfo == tz
False
>>> tz.zone
'America/Chicago'
>>> dt_aware.tzinfo.zone == tz.zone
True

关于python - 为什么时区感知日期时间的 tzinfo 不等于时区?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/44397094/

10-11 01:15