使用python我试图将日期时间值本地化为时区" America / Chicago"目前是-06:00。 我通过以下方式获得时区:
>>> import pytz
>>> tz = pytz.timezone("America/Chicago")
<DstTzInfo 'America/Chicago' CST-1 day, 18:00:00 STD>
当我将日期本地化时:
>>> my_date = tz.localize(datetime.now())
datetime.datetime(2016, 9, 24, 17, 4, 43, 439824, tzinfo=<DstTzInfo 'America/Chicago' CDT-1 day, 19:00:00 DST>)
注意本地化后的时区是错误的:
<DstTzInfo 'America/Chicago' CDT-1 day, 19:00:00 DST>
后来当我要求偏移量时,你可以看到它确认它有错误的偏移量:
>>> my_date.strftime("%z")
'-0500'
如果我使用astimezone,则完全相同:
>>>my_date
datetime.datetime(2016, 9, 24, 22, 15, 1, 620364, tzinfo=<UTC>)
>>>my_date.astimezone(tz)
datetime.datetime(2016, 9, 24, 17, 15, 1, 620364, tzinfo=<DstTzInfo 'America/Chicago' CDT-1 day, 19:00:00 DST>)
答案 0 :(得分:0)
Btw芝加哥现在正在观察夏令时。所以-05.00是正确的抵消。默认情况下,Pytz时区具有标准时间,但本地化时可以根据日期考虑日间照明(如您的情况)。