关于python:用pytz和’America / Chicago’错误识别日期时间

Wrong aware-datetime with pytz and 'America/Chicago'

本问题已经有最佳答案,请猛点这里访问。
1
2
In [57]: datetime.datetime(2015,7,7,15,30,tzinfo=pytz.timezone('America/Chicago'))
Out[57]: datetime.datetime(2015, 7, 7, 15, 30, tzinfo=<DstTzInfo 'America/Chicago' CST-1 day, 18:00:00 STD>)

注意偏移量,它表示UTC-6(例如 - (24-18)),而2015-7-7芝加哥的正确偏移量是UTC-5。

我在这里错过了什么吗?


某些时区和pytz存在问题,使用localize会修复:

1
2
3
4
5
6
import pytz
d = datetime(2015,7,7,15,30)
dt = pytz.timezone('America/Chicago').localize(d)

print(dt)
2015-07-07 15:30:00-05:00

不幸的是,对于许多时区,使用标准日期时间构造函数的'tzinfo参数''与pytz不兼容。