मैं स्थानीय समय में युग के समय को बदलने के लिए datetime.fromtimestamp
का उपयोग कर रहा हूं। मैंने पाया कि datetime.fromtimestamp
एक निश्चित समय पर एक घंटे की एक अलग छलांग लगाता है और मैं पूरी तरह से परेशान हूं कि ऐसा क्यों करता है।पायथन का 'सेटिमस्टैम्प' एक अलग कूद
(मैं भी time.mktime
उपयोग कर रहा हूँ युग समय में एक datetime वस्तु कन्वर्ट करने के लिए, as suggested by Raymond Hettinger। मुझे यकीन है यह इस प्रश्न के लिए प्रासंगिक जानकारी है कि क्या नहीं कर रहा हूँ तो मैं बस के मामले में यह कह रहा हूँ।)
Python 2.7.1+ (r271:86832, Apr 11 2011, 18:05:24)
[GCC 4.5.2] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> import time, datetime
>>> def datetime_to_epoch_time(datetime_):
... return time.mktime(datetime_.timetuple()) + datetime_.microsecond/1e6
...
एक विशिष्ट युग समय चुनने:
>>> x = datetime_to_epoch_time(datetime.datetime(2012, 3, 30, 3, 0))
यह एक datetime में कनवर्ट कर रहा fromtimestamp
का उपयोग कर:
>>> datetime.datetime.fromtimestamp(x)
datetime.datetime(2012, 3, 30, 3, 0)
हमें 3 बजे का समय मिलता है।
अब समय ठीक एक दूसरे है कि यह पहले परिवर्तित करते हैं:
>>> datetime.datetime.fromtimestamp(x-1)
datetime.datetime(2012, 3, 30, 1, 59, 59)
हम अचानक 1:59 प्राप्त करें!
क्या हुआ? मुझे पता है कि इस तरह की चीजें छलांग के दिनों के आसपास होती हैं, लेकिन 30 मार्च के बाद से एक लीप दिन कब होता है?
मुझे ध्यान रखना चाहिए कि मैंने यह केवल लिनक्स पर किया है, न कि विंडोज़ पर। और मुझे लगता है कि विभिन्न लिनक्स कंप्यूटर (विभिन्न टाइमज़ोन में) में एक अलग समय बिंदु होता है जिसमें fromtimestamp
कूदता है।
मुझे लगता है। तो 'fromtimestamp' उस समय क्षेत्र से अवगत है जिसमें मैं रहता हूं और जानता हूं कि कौन से घंटों को छोड़ना है। लेकिन 'डेटाटाइम' ऑब्जेक्ट्स इस कूद से अवगत नहीं हैं: अगर मैं 2 बजे के लिए 'डेटाटाइम' ऑब्जेक्ट को 2am के लिए घटाता हूं, तो मुझे एक घंटे का 'टाइमडेल्टा' मिलता है, जहां मुझे शून्य मिलना चाहिए। –
फिर, मैं अपने टाइमज़ोन के बारे में जागरूक 'डेटाटाइम' ऑब्जेक्ट्स कैसे बना सकता हूं, और उन्हें * सटीक * कुछ टाइमज़ोन का उपयोग 'सेटिमस्टैम्प' के रूप में करता हूं, इसलिए वे पूरी तरह सिंक्रनाइज़ हो जाएंगे? टाइमस्टैम्प का निर्माण करते समय –
@ रामरामम 'tzinfo' ध्वज पास करें। 'pytz' लाइब्रेरी उसमें कुछ मदद की जा सकती है। – Amber