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

एक सात घंटे और 37 मिनट ऑफसेट के साथ अजीब टाइमज़ोन समस्या? यह थोड़ा अजीब है, क्या किसी को भी एक ही समस्या का अनुभव होता है?पिटज़

वास्तव में मैं पिछले कुछ वर्षों में बदल

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

सटीक होने में समस्या क्या है? ['हांगकांग समय को पहली बार स्थानीय मीन टाइम (जीएमटी +7: 36: 41) पर 1 जनवरी 1885 को तत्कालीन रॉयल वेधशाला हांगकांग द्वारा 13:00 बजे सेट किया गया था] (http://en.wikipedia.org/ विकी/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 कन्स्ट्रक्टर का उपयोग करके इसे ठीक से समायोजित करने की अनुमति नहीं मिलती है।