1 जनवरी, 1970 से तारीखों की गणना क्यों की जाती है?


95

क्या समय में हेरफेर के लिए डिफ़ॉल्ट मानक के रूप में दिनांक (1 जनवरी, 1970) का उपयोग करने के पीछे कोई कारण है? मैंने जावा में और पायथन में भी इस मानक को देखा है। इन दो भाषाओं से मैं अवगत हूं। क्या अन्य लोकप्रिय भाषाएँ हैं जो समान मानक का अनुसरण करती हैं?

कृपया विस्तार में बताएं।


1
उसी मानक का अनुसरण करने वाली एक अन्य लोकप्रिय भाषा है PHP, इसका एक सामान्य समय प्रारंभ बिंदु है।
ग्रेग के

जवाबों:


65

यह यूनिक्स समय का मानक है

यूनिक्स समय, या पोसिक्स समय, समय में बिंदुओं का वर्णन करने के लिए एक प्रणाली है, जिसे 1 जनवरी, 1970 के मध्य रात्रि प्रोलेप्टिक कोऑर्डिनेटेड यूनिवर्सल टाइम (यूटीसी) के बाद से छपी सेकंड की संख्या के रूप में परिभाषित किया गया है, जो छलांग सेकंड की गिनती नहीं करता है।


5
क्या आप जानते हैं कि क्या कार्निघन और थॉम्पसन ने हर उस चीज़ को चुनने के लिए एक कारण व्यक्त किया था जो "चीज़ बनाने से पहले थोड़ा गोल है?"
dmckee --- पूर्व-मध्यस्थ ने बिल्ली को

यह एक वर्ष की शुरुआत है, यह शून्य समयक्षेत्र (ज़ुलु) में है। वे दोनों दिनांक स्वरूपण कोड को सरल बनाते हैं।
डोना फेलो

28
छलांग सेकंड की गिनती नहीं है? मुझे वह डिटेल नहीं पता थी। कुछ क्षणों के बारे में सोचने के बाद, मैं देख सकता हूँ कि आप इसे इस तरह क्यों करेंगे, लेकिन आदमी। मेरी दुनिया बिखर गई है। 24 सेकंड से।
19urn

69

डिफ़ॉल्ट मानक के रूप में दिनांक (1 जनवरी, 1970) का उपयोग करना

प्रश्न दो गलत धारणाएं बनाता है:

  • कंप्यूटिंग में सभी समय-ट्रैकिंग 1970 के बाद से गिनती के रूप में की जाती है।
  • ऐसी ट्रैकिंग मानक है।

दो दर्जन युग

कंप्यूटिंग में समय हमेशा 1970 यूटीसी की शुरुआत से ट्रैक नहीं किया जाता है । हालांकि उस युग का संदर्भ लोकप्रिय है, दशकों से विभिन्न कंप्यूटिंग वातावरणों ने कम से कम लगभग दो दर्जन युगों का उपयोग किया है । कुछ अन्य शताब्दियों से हैं। वे वर्ष 0 (शून्य) से 2001 तक हैं।

यहाँ कुछ है।

0 जनवरी, 1 ई.पू.

1 जनवरी, 1 एडी

15 अक्टूबर, 1582

1 जनवरी, 1601

31 दिसंबर, 1840

17 नवंबर, 1858

30 दिसंबर, 1899

31 दिसंबर, 1899

1 जनवरी, 1900

1 जनवरी, 1904

31 दिसंबर, 1967

1 जनवरी, 1980

6 जनवरी, 1980

1 जनवरी, 2000

1 जनवरी, 2001

यूनिक्स एपोच कॉमन, लेकिन डोमिनेंट नहीं

1970 की शुरुआत लोकप्रिय है, शायद यूनिक्स द्वारा इसके उपयोग के कारण। लेकिन किसी भी तरह से यह प्रमुख नहीं है। उदाहरण के लिए:

  • माइक्रोसॉफ्ट एक्सेल और लोटस 1-2-3 दस्तावेजों के अनगिनत लाखों (अरबों?) का उपयोग करें January 0, 1900(31 दिसंबर, 1899)।
  • दुनिया में अब कोको (NSDate) युग का उपयोग करके एक बिलियन से अधिक iOS / OS X डिवाइस हैं1 January 2001, GMT
  • जीपीएस उपग्रह नेविगेशन प्रणाली का उपयोग करता है January 6, 1980, जबकि यूरोपीय विकल्प गैलीलियो का उपयोग करता है 22 August 1999

आईएसओ 8601

एक गिनती के बाद से मान लीजिए यूनिक्स युग का उपयोग कर रहा है कीड़े के लिए एक बड़ी भेद्यता खोल रहा है। इस तरह की गिनती एक मानव के लिए तुरंत समझना असंभव है, इसलिए डिबगिंग और लॉगिंग करते समय त्रुटियों या मुद्दों को आसानी से चिह्नित नहीं किया जाएगा। एक और समस्या नीचे बताई गई बारीकियों की अस्पष्टता है।

मैं दृढ़ता से तारीख-समय के मूल्यों को क्रमबद्ध करने के बजाय एक पूर्णांक गणना-के बाद के युग के बजाय डेटा इंटरचेंज के लिए स्पष्ट आईएसओ 8601 तारों को क्रमबद्ध करने का सुझाव देता हूं : YYYY-MM-DDTHH:MM:SS.SSSZजैसे 2014-10-14T16:32:41.018Z

युग के बाद से क्या गणना

काउंट-ए-टाइम-टाइम ट्रैकिंग के साथ एक और मुद्दा टाइम यूनिट है, जिसमें आमतौर पर उपयोग किए जाने वाले कम से कम चार स्तर होते हैं।

आरेख सेकंड, मिलीसेकंड, माइक्रोसेकंड, या नैनोसेकंड द्वारा युगांतर से अलग सॉफ्टवेयर गणना दिखा रहा है।


1
मुझे आश्चर्य है कि इस समय प्रमुख युग क्या है ... क्या आपने इसे डेटा पर आधारित किया है?
पास्कलवीकूटेन

1
@PascalVKooten कई अलग-अलग वातावरण और सॉफ्टवेयर सिस्टम में कई अलग-अलग युगों का उपयोग किया जाता है। इसलिए कोई एक प्रमुख युग नहीं है। यहाँ मेरी बात यह है कि इस युग को कभी नहीं मानें। अपने डेटा स्रोत को जानें। पूरी तरह से एपोक समस्या से बचने के लिए डेटा स्रोत के लिए सर्वोत्तम दृष्टिकोण है और आईएसओ 8601 स्ट्रिंग्स, आईएमएचओ का उपयोग करें।
बेसिल बॉर्क

1
आपके जवाब के लिए धन्यवाद। मैं समझता हूं कि कई हैं, लेकिन मैं यह जानने के लिए उत्सुक हूं कि क्या पीओएसआईएक्स समय के साथ अधिक लोकप्रिय हो गया।
पास्कलवूटन

7

इसकी हमेशा 1 जून 1970 क्यों, क्योंकि - '1 जनवरी 1970' को आमतौर पर "युग तिथि" कहा जाता है, वह तारीख है जब यूनिक्स कंप्यूटरों के लिए समय शुरू हुआ था, और उस टाइमस्टैम्प को '0' के रूप में चिह्नित किया गया है। किसी भी समय उस तिथि की गणना बीते हुए सेकंड की संख्या के आधार पर की जाती है। सरल शब्दों में ... किसी भी तारीख का टाइमस्टैम्प उस तारीख और '1 जनवरी 1970' के बीच के सेकंड में अंतर होगा। समय का मोहर सिर्फ एक पूर्णांक है जो 'मिडनाइट 1 जनवरी 1970' पर नंबर '0' से शुरू होता है और इंक्रीमेंट पर जाता है प्रत्येक दूसरे पास के रूप में '1' द्वारा UNIX टाइमस्टैम्प को पठनीय तारीखों में बदलने के लिए PHP और अन्य ओपन सोर्स लैंग्वेज फंक्शन्स में निर्मित होते हैं।


5

क्या समय में हेरफेर के लिए मानक के रूप में दिनांक (1 जनवरी, 1970) का उपयोग करने के पीछे कोई कारण है?

कोई कारण नहीं है कि मायने रखता है।

पायथन का timeमॉड्यूल है सी पुस्तकालय। केन थॉम्पसन से पूछें कि उसने एक एपोचल तारीख के लिए उस तारीख को क्यों चुना। शायद यह किसी का जन्मदिन था।

एक्सेल दो अलग-अलग युगों का उपयोग करता है। किसी भी कारण से एक्सेल के विभिन्न संस्करण अलग-अलग तिथियों का उपयोग करते हैं?

वास्तविक प्रोग्रामर को छोड़कर, किसी और को कभी पता नहीं चलेगा कि क्यों उन प्रकार के निर्णय किए गए थे।

तथा...

इससे कोई फर्क नहीं पड़ता कि क्यों तारीख चुनी गई। यह बस था

खगोलविद अपनी स्वयं की युगीन तिथि का उपयोग करते हैं: http://en.wikipedia.org/wiki/Epoch_(astrons)

क्यों? गणित को काम करने के लिए एक तारीख चुननी होगी। कोई भी रैंडम डेट काम करेगी।

अतीत में एक तारीख सामान्य मामले के लिए नकारात्मक संख्या से बचा जाता है।

होशियार पैकेजों में से कुछ प्रोलेप्टिक ग्रेगोरियन वर्ष 1 का उपयोग करते हैं। किसी भी कारण से वर्ष 1?
कैलेंड्रिकल गणना जैसी पुस्तकों में एक कारण दिया गया है: यह गणितीय रूप से थोड़ा सरल है।

लेकिन अगर आप इसके बारे में सोचते हैं, तो 1/1/1 और 1/1/1970 का अंतर सिर्फ 1969 है, एक तुच्छ गणितीय ऑफसेट।


1
अगर 1/1/1 चुना गया होता तो हम अब तक सेकंड (2 ^ 31) से बाहर भाग चुके होते। जैसा कि यह खड़ा है, हम 2038 में 32 बिट ऑपरेटिंग सिस्टम के लिए Y2K जैसे मुद्दे का सामना करते हैं। en.wikipedia.org/wiki/Year_2038_problem
क्रिस नवा

1
@ क्रिस नवा: वे लोग जो 1/1/1 गिनती दिनों का उपयोग करते हैं, सेकंड नहीं। 2 बिलियन दिन लगभग 5 मिलियन वर्ष है। अक्सर वे समय संकल्प को अधिकतम करने के लिए एक (दिन, समय) जोड़ी रखते हैं; अधिकांश दिनों में केवल 86400 सेकंड होते हैं।
एस.लॉट

@ एस.लॉट: हाँ। मैं सिर्फ यह इंगित कर रहा था कि चूंकि अधिकांश सॉफ्टवेयर सेकंड (मिनट नहीं) की अवधि के बाद से, 1/1/1 एक उचित शुरुआत की तारीख होने के लिए अतीत में दूर था। इसलिए, एक और हाल की तारीख को कंप्यूटर युग के रूप में चुना गया था (और आईटी क्रांति की शुरुआत के सहयोग से; ;-)
क्रिस नावा

@ क्रिस नावा: "सबसे"? मैं "सबसे" आपको "लिनक्स" से मतलब है। अन्य OS उसी तरह काम नहीं करता है जैसे Linux करता है। मुद्दा यह है कि "उचित" और "1/1/1970 क्यों?" जवाब देने के लिए आसान सवाल नहीं हैं; सबसे महत्वपूर्ण बात, जवाब मायने नहीं रखता। "उचित" सच है, लेकिन यह कारण नहीं है । कारण क्यों कुछ ही केन थॉम्पसन का जवाब कर सकते हैं।
S.Lott


2

Q) "1 जनवरी, 1970 से तारीखों की गणना क्यों की जाती है?"

ए) इसे यथासंभव हाल ही में होना था, फिर भी कुछ अतीत शामिल हैं। सबसे अधिक संभावना कोई अन्य महत्वपूर्ण कारण नहीं था क्योंकि बहुत से लोग उसी तरह महसूस करते हैं।

उन्हें पता था कि अगर यह अतीत में बहुत दूर रखा है तो उन्हें एक समस्या है और उन्हें पता था कि अगर यह भविष्य में होता तो नकारात्मक परिणाम देता। अतीत में गहराई में जाने की आवश्यकता नहीं थी क्योंकि भविष्य में घटनाओं की सबसे अधिक संभावना होगी।

नोट: दूसरी ओर, मेयनों को अतीत में घटनाओं को रखने की आवश्यकता थी, क्योंकि उन्हें बहुत सारे अतीत का ज्ञान था, जिसके लिए उन्होंने एक दीर्घकालिक कैलेंडर बनाया था। बस सभी नियमित घटनाओं को कैलेंडर पर जगह देने के लिए।

टाइमस्टैम्प एक कैलेंडर के रूप में नहीं था, यह एक युग है। और मुझे विश्वास है कि मायाओं ने उसी दृष्टिकोण का उपयोग करके अपने दीर्घकालिक कैलेंडर बनाए। (जिसका अर्थ है कि वे अच्छी तरह जानते थे कि उनके अतीत के साथ कोई संबंध नहीं था, उन्हें बस इसे बड़े पैमाने पर देखने की आवश्यकता थी)


हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.