के समय क्षेत्र के मान लें मैं एक समय क्षेत्र कम datetime
वस्तु है कि:असाइन एक अजगर datetime
import datetime
import pytz
fmt = "%Y-%m-%d %H:%M:%S %Z%z"
dtUnaware = datetime.datetime(1979,2,20,6)
print(dtUnaware.strftime(fmt))
यह पैदावार:
1979-02-20 06:00:00
अब तक तो अच्छा। अब, मैं इस ऑब्जेक्ट को टाइमज़ोन असाइन करना चाहता हूं। ऐसा लगता है कि मैं या तो datetime.replace
या pytz.localize
का उपयोग कर सकता हूं।
पहले:
dtAware1 = dtUnaware.replace(tzinfo=pytz.timezone('Asia/Jerusalem'))
print(dtAware1.strftime(fmt))
रिटर्न: 1979-02-20 06:00:00 LMT+0221
। दूसरा:
dtAware2 = pytz.timezone('Asia/Jerusalem').localize(dtUnaware, is_dst=None)
print(dtAware2.strftime(fmt))
1979-02-20 06:00:00 IST+0200
देता है।
पहली विधि में क्या गलत है? ऐसा लगता है कि गलत टाइमज़ोन असाइन किया गया है। क्या मुझसे कुछ गलत हो रही है?
एक अच्छा स्पष्टीकरण। यह 'स्थानीयकरण() '' '__dst' पैरामीटर का उल्लेख करने लायक हो सकता है जो संदिग्ध और अस्तित्वहीन स्थानीय समय को संभालता है। गैर-मौजूदा स्थानीय समय के लिए 'स्थानीयकरण() 'के बाद भी' सामान्यीकृत करें) विधि का उपयोग किया जा सकता है। – jfs