2012-02-16 16 views
10

क्या कोई व्यक्ति ध्यान देता है कि पाइथन डेटाटाइम में दूसरे का अंतराल [00,61] इस पृष्ठ के नीचे तालिका को देखता है। http://docs.python.org/library/datetime.html#strftime-strptime-behaviorक्यों पाइथन समय 61 सेकंड

क्यों?

+0

साल के दिन भी आदेश छलांग दिनों समायोजित करने के लिए में [1, 366] से चला जाता है। – plaes

+0

-1 क्योंकि +6 में दिए गए लिंक में दिए गए प्रश्न के लिए +6 हास्यास्पद है। – geoffspear

+1

+1 क्योंकि एक प्रश्न जो एक दिलचस्प तथ्य को इंगित करता है जिसे मैं नहीं जानता था उपयोगी है। – EOL

उत्तर

17

जवाब थोड़ा आगे पेज में नीचे है:

रेंज वास्तव में 61 करने के लिए 0; पॉज़िक्स मानक के अनुसार यह लीप सेकंड और (बहुत दुर्लभ) डबल लीप सेकंड के लिए खाते हैं। समय मॉड्यूल लीप सेकंड स्वीकार कर सकता है और यह पॉज़िक्स मानक पर पर आधारित है, लेकिन डेटाटाइम मॉड्यूल strptime() इनपुट में सेकेंड को लीप स्वीकार नहीं करता है और न ही यह उन्हें स्ट्रैटाइम() आउटपुट में उत्पन्न करेगा।

यह वास्तव में एक दिलचस्प व्यवहार है।

+0

हम्म, मैं भी स्पष्टीकरण को अनदेखा करने के लिए बाहर निकल रहा हूं। – storm

+3

मुझे अभी एहसास हुआ कि पायथन में लीप सेकेंड का डेटाबेस नहीं है (टाइमज़ोन के लिए tzinfo के समान) और इसलिए कोई निश्चित छलांग दूसरा वैध होने पर मान्य करने का कोई तरीका नहीं है ... इसका मतलब है कि यूनिक्स समय में रूपांतरण है हानिकारक: 'टी 1 = समय।strptime ("30 जून 1997 23:59:60", "% डी% बी% वाई% एच:% एम:% एस"); t2 = time.strptime ("01 जुलाई 1 99 7 00:00:00", "% d% b% वाई% एच:% एम:% एस") ', फिर' t1 == t2' अपेक्षित के रूप में 'गलत' उपज करता है, लेकिन 'calendar.timegm (t1) == calendar.timegm (t2)' उपज 'सत्य' – berdario

+0

@berdario: आपका उदाहरण है (गलती से?) सही है। [30 जून 1 99 7 को एक छलांग दूसरा है) (http://tf.nist.gov/pubs/bulletin/leapsecond.htm)। और पॉज़िक्स दिन में हमेशा 86400 सेकेंड होते हैं इसलिए 'calendar.timegm()' सही परिणाम देता है ([इस मामले में एक ही पॉज़िक्स टाइमस्टैम्प दो बार होता है] (http://en.wikipedia.org/wiki/Unix_time#Encoding_time_as_a_number))। – jfs

1

जब आपको लीप सेकेंड जोड़ना होता है तो यह गणना करने में सहायक होगा। आप छलांग के लिए नेट पर खोज सकते हैं। पायथन में उस दूसरी श्रृंखला के कारण 0-61 है।

+1

वास्तव में यह डबल लीप सेकंड के लिए 61 तक है। – plaes

+0

@plaes सबूत कहां मौजूद हैं? बस एक पंक्ति में दो लीप दूसरे महीने जारी करने से एक मिनट आगे बढ़ने के बिना पर्याप्त होगा। –

+0

अभी तक कोई भी नहीं रहा है। लेकिन लीप सेकंड की भविष्यवाणी नहीं की जा सकती है। – plaes

-5

लीप सेकंड।

यह मामला है कि अतीत में एक मिनट में 62 सेकंड रहे हैं।

यह दुनिया कताई धीमी गति के लिए समायोजित करता है।

इसका हिस्सा ज्वारों के नीचे है। ज्वारों के लिए ऊर्जा पृथ्वी और चंद्रमा के घूर्णन से आता है। नतीजा यह है कि दुनिया धीमा हो जाती है।

यदि ग्लोबल वार्मिंग होता है तो महासागर गर्म हो जाते हैं और विस्तार करते हैं। यह उनकी बाहों को फेंकने वाले स्केटर की तरह है, और स्पिन धीमा हो जाता है। ऐसा नहीं हुआ है। समुद्र के स्तर का माप घूर्णन माप से सहमत नहीं है। यह पृथ्वी की सतह पर चलने वाली समस्याओं के साथ नीचे आने की संभावना है, जो समुद्र के स्तर की वृद्धि से काफी बड़ा है।

+4

वैश्विक चेतावनी लीप सेकंड के लिए ज़िम्मेदार नहीं है। यह सिर्फ एक जटिल विषय में जोड़ा गया भ्रम है। – MatthieuW

+1

अतीत में 62 सेकंड प्रति मिनट कभी नहीं रहा है, सिद्धांत में भी नहीं! –

2

डबल लीप सेकेंड जैसी कोई चीज़ नहीं है। एक मिनट में 62 सेकंड नहीं हो सकते हैं। 5 9, हां। 60, हां। 61, हां। 62, नहीं।

http://www.monkey.org/openbsd/archive2/tech/199905/msg00031.html

+0

अच्छा, क्या आप "उलटा छलांग दूसरा" का एक मामला दे सकते हैं, उदा। मिनट के समय में 60 के बजाय 59 सेकंड थे? – toriningen

+1

59 सेकंड मिनट का कोई उदाहरण नहीं रहा है, हालांकि सिद्धांत में हो सकता है। यद्यपि "डबल लीप दूसरा" नहीं हो सकता है। –

+0

डबल लीप सेकंड की अनुमति है, अभी तक कोई तारीख नहीं है। तो एक मिनट में 62 सेकंड हो सकते हैं - यह सिर्फ इतना है कि ऐसा अभी तक हुआ है। –

संबंधित मुद्दे