2012-07-13 8 views
30
>>> import pytz 
>>> pytz.timezone('Asia/Hong_Kong') 
<DstTzInfo 'Asia/Hong_Kong' LMT+7:37:00 STD> 

7時間37分のオフセット?これは少し奇妙です、誰も同じ問題を経験していますか? pytzで奇妙なタイムゾーンの問題

は実際に私が長年にわたって変更

import pytz 
from datetime import datetime 
hk = pytz.timezone('Asia/Hong_Kong') 

dt1 = datetime(2012,1,1,tzinfo=hk) 
dt2 = hk.localize(datetime(2012,1,1)) 
if dt1 > dt2: 
    print "Why?" 
+0

正確であることの問題は何ですか?香港時間は1885年1月1日13:00に当時王立天文台香港(Hong Kong)によって地方平均時間(GMT + 7:36:41)に設定された] [http://en.wikipedia.org/ wiki/Hong_Kong_Time#Time_standards) – KurzedMetal

+0

参照http://stackoverflow.com/questions/11442183/pytz-timezone-shows-weird-results-for-asia-calcutta/11442571#11442571 –

答えて

43

タイムゾーンとオフセットの間で異なる動作を取得しています。 pytzがタイムゾーンオブジェクトを作成するときに渡されるデフォルトのゾーン名とオフセットは、そのゾーンで利用可能な最も早いゾーンの名前とオフセットです。時にはそれらが奇妙に見えることもあります。 localizeを使用してゾーンに日付を添付すると、適切なゾーン名とオフセットが置き換えられます。 datetimeコンストラクタを使用してゾーンに日付を添付するだけでは、正しく調整できません。