2016-09-24 45 views
0

使用python我試圖將日期時間值本地化爲時區「America/Chicago」,當前是-06:00。 我得到了時區的方式如下:在Python中本地化錯誤

>>> 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' 

完全一樣happend如果我使用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

芝加哥順便說一句,現在觀察DST。所以-0.00是正確的抵消。默認情況下,Pytz時區具有標準時間,但當本地化時可以根據日期考慮日光節約(如您的情況)。