मुझे pytz के .localize() फ़ंक्शन के साथ कुछ अजीब समस्याएं हैं। कभी कभी यह स्थानीय datetime के लिए समायोजन कर नहीं होगा:pytz localize बनाम डेटाटाइम
.localize व्यवहार:
>>> tz
<DstTzInfo 'Africa/Abidjan' LMT-1 day, 23:44:00 STD>
>>> d
datetime.datetime(2009, 9, 2, 14, 45, 42, 91421)
>>> tz.localize(d)
datetime.datetime(2009, 9, 2, 14, 45, 42, 91421,
tzinfo=<DstTzInfo 'Africa/Abidjan' GMT0:00:00 STD>)
>>> tz.normalize(tz.localize(d))
datetime.datetime(2009, 9, 2, 14, 45, 42, 91421,
tzinfo=<DstTzInfo 'Africa/Abidjan' GMT0:00:00 STD>)
आप देख सकते हैं, समय स्थानीयकरण के परिणाम के रूप में बदला नहीं गया/संचालन सामान्य बनाते हैं। हालांकि, अगर .replace प्रयोग किया जाता है:
>>> d.replace(tzinfo=tz)
datetime.datetime(2009, 9, 2, 14, 45, 42, 91421,
tzinfo=<DstTzInfo 'Africa/Abidjan' LMT-1 day, 23:44:00 STD>)
>>> tz.normalize(d.replace(tzinfo=tz))
datetime.datetime(2009, 9, 2, 15, 1, 42, 91421,
tzinfo=<DstTzInfo 'Africa/Abidjan' GMT0:00:00 STD>)
कौन सा datetime में समायोजन करने के लिए लगता है।
प्रश्न है - जो सही है और क्यों गलत है?
संबंधित: [पीटीटीज़ का उपयोग कर डेटाटाइम टाइमज़ोन रूपांतरण] (http://stackoverflow.com/q/27531718/4279) – jfs