डेवलपर टूल · Unix टाइमस्टैम्प कन्वर्टर
लीप सेकंड और Unix समय: युग क्यों दिखावा करता है कि उनका अस्तित्व नहीं है
· पेजभूमि
टाइम स्टाम्प्स Unix-समय समय क्षेत्र
UTC ने 1972 के बाद से लीप सेकंड डाले हैं, लेकिन Unix समय बस उनकी गिनती नहीं करता है, जिसका मतलब है कि कुछ सेकंड दो बार हुए हैं। यह पोस्ट बताती है कि क्यों, धब्बा क्या है, और क्यों पूरी प्रथा समाप्त होने वाली है।
दूसरा जो दो बार हुआ - एक सिस्टम में 23:59:60, दूसरे में बार-बार 23:59:59, और आधी रात को डुप्लिकेट-कुंजी त्रुटि
ToolAcre `23:59:60` पर समाप्त होने वाली ISO पंक्ति उत्पन्न नहीं कर सकता। इसका परीक्षण लीप-सेकंड सीमा को नाम देता है और एक युग मान को `2016-12-31T23:59:59.000Z` और अगले को `2017-01-01T00:00:00.000Z` के रूप में प्रारूपित करने की अपेक्षा करता है। उनके बीच कोई अतिरिक्त प्रदर्शित करने योग्य दूसरा नहीं है।
यह तथ्य उन लॉग को प्रभावित कर सकता है जिनके बाहरी स्रोत ने किसी अन्य कन्वेंशन का उपयोग किया है, लेकिन इस रिपॉजिटरी में कोई डुप्लिकेट-कुंजी घटना साक्ष्य नहीं है। यदि किसी सिस्टम में बार-बार लेबल दिखाई देते हैं, तो कन्वर्टर को स्वचालित रूप से जिम्मेदार ठहराने के बजाय उस घड़ी और भंडारण पथ का निरीक्षण करें।
प्रत्येक भौतिक सेकंड के लिए एक अद्वितीय लेबल की आवश्यकता वाली प्रणाली को इस Unix-टू-डेट मैपिंग की तुलना में अधिक संदर्भ की आवश्यकता होती है। कन्वर्टर उस लेबल का निर्माण नहीं कर सकता जिसे उसका मॉडल छोड़ देता है।
ToolAcre कोई प्रतिनिधित्व योग्य साबित नहीं होता 23:59:60; यह डुप्लिकेट-कुंजी घटनाओं का दस्तावेजीकरण नहीं करता है
रूपरेखा में परमाणु समय, पृथ्वी के घूमने और सहनशीलता की सीमा के बारे में बताया गया है। वे वैज्ञानिक और मानक दावे टाइमस्टैम्प कोड या परीक्षणों द्वारा स्थापित नहीं होते हैं। उन्हें स्मृति से व्याख्यायित करने के बजाय जानबूझकर छोड़ दिया गया है। यहां तंत्र वैश्विक टाइमकीपिंग नीति के पीछे के कारणों को साबित नहीं करता है।
इस मार्ग का उपयोग करने के लिए, आवश्यक साक्ष्य सरल है: दिनांक और ISO आउटपुट सामान्य दूसरे लेबल को उजागर करते हैं, और POSIX-शैली युग परीक्षण सीमा के पार आगे बढ़ता है। लीप-सेकंड शासन के स्रोत उपचार के लिए अनुमत भंडार पथों से परे आधिकारिक सामग्री की आवश्यकता होगी।
यह सीमा अस्पष्ट होने के बजाय स्पष्ट है: सॉफ़्टवेयर परीक्षण प्रतिनिधित्व प्रश्नों का उत्तर देते हैं, जबकि वैज्ञानिक इतिहास को उस उद्देश्य के लिए लिखी गई सामग्री की आवश्यकता होती है और उसकी अपनी शर्तों पर समीक्षा की जाती है।
लीप सेकंड के भौतिक औचित्य के लिए इस भंडार के बाहर के स्रोतों की आवश्यकता होती है
कार्यान्वित मॉडल ऐसा व्यवहार करता है मानो उसकी धुरी पर नागरिक दिनों में 86,400 क्रमांकित Unix सेकंड हों। लगातार पूर्णांक इनपुट में एक सेकंड का अंतर होता है, जिसमें 2016 वर्ष की सीमा भी शामिल है। `fromEpoch` प्रत्येक को 1,000 से गुणा करता है और परिणामी मिलीसेकंड गणना को दिनांक स्वरूपित करता है।
इसे "अनदेखा" लीप सेकंड कहना अवलोकन योग्य आउटपुट का वर्णन करता है: `:60` लेबल पर कोई अद्वितीय Unix मान मैप नहीं होता है। इसका मतलब यह नहीं है कि प्रत्येक मशीन की घड़ी वास्तविक प्रविष्टि के दौरान समान रूप से आगे बढ़ती है। कन्वर्टर एक गिनती स्वीकार करता है; यह मेज़बान घड़ी का नमूना या अनुशासित नहीं करता है।
बड़ी कैटेगरी में अंकगणित एक ही परंपरा का पालन करता है, इसलिए दो Unix मानों को घटाने से छोड़े गए लीप लेबल को फिर से बनाने के बजाय उनके POSIX-शैली गणना अंतर को मापा जाता है।
परीक्षण किए गए रूपांतरण में लगातार युग मानों के बीच कोई लीप-सेकेंड लेबल नहीं है
सिस्टम चरण लागू कर सकते हैं, दोहरा सकते हैं या स्मीयर कर सकते हैं, लेकिन रिपॉजिटरी यह पहचान नहीं करती है कि कौन से प्रदाता किस पद्धति का उपयोग करते हैं, किस अंतराल पर या किस फॉर्मूले के साथ। प्रत्यक्ष प्रमाण के बिना उन विवरणों को प्रकाशित करने से परिचालनात्मक रूप से खतरनाक सटीकता पैदा होगी। इसलिए यह आलेख प्लेटफ़ॉर्म-विशिष्ट घड़ी का कोई वादा नहीं करता है।
यदि लीप सीमा के पास की घटनाएं मायने रखती हैं, तो स्रोत के घड़ी दस्तावेज़ और कच्चे मूल्यों को सुरक्षित रखें। अलग-अलग हैंडलिंग वाली दो प्रणालियाँ दोनों मानों को UTC के रूप में स्वरूपित करने के बाद भी असहमत हो सकती हैं। अकेले रूपांतरण उनके नमूना व्यवहार को समेट नहीं सकता है या छोड़े गए पैमाने के अंतर को पुनर्प्राप्त नहीं कर सकता है।
रनटाइम का चुनाव इवेंट के आसपास अल्पकालिक ऑर्डर को भी प्रभावित कर सकता है। जब वह अंतर परिचालनात्मक रूप से मायने रखता है तो मोनोटोनिक काउंटर या स्रोत-विशिष्ट अनुक्रम डेटा को संरक्षित करें।
यहां क्लॉक-स्टेप और स्मीयर व्यवहार प्लेटफ़ॉर्म-विशिष्ट और असत्यापित है
1,483,228,799 सेकंड दर्ज करें: सत्यापित ISO परिणाम `2016-12-31T23:59:59.000Z` है। इनपुट को एक बार 1,483,228,800 तक बढ़ाएं: परिणाम `2017-01-01T00:00:00.000Z` है। पूर्णांकों को घटाने पर एक मिलता है, जो इस मॉडल में प्रदर्शित प्रगति से मेल खाता है।
स्थानीय पंक्तियाँ ब्राउज़र के आधार पर अलग-अलग तिथियाँ या ऑफसेट दिखा सकती हैं, लेकिन वे उन्हीं इंस्टेंट से प्राप्त होती हैं। सीमा जांच के लिए ISO पंक्तियों का उपयोग करें। स्थानीय-क्षेत्र परिवर्तन इस बात से असंबंधित है कि लीप-सेकंड लेबल मौजूद है या नहीं।
जोड़ी एक उपयोगी प्रतिगमन परीक्षण है क्योंकि ISO स्ट्रिंग्स में कोई स्थानीय निर्भरता नहीं है। यह कन्वर्टर के व्यवहार को संबंधित किनारे पर सीधे लॉक कर देता है।
कार्यान्वित उदाहरण: भंडार की परीक्षण की गई 2016 सीमा
कार्यपुस्तिका में 2022 रिज़ॉल्यूशन और भविष्य की समय सीमा का संदर्भ दिया गया है। कोई भी मानक या नीति स्रोत कार्यान्वयन साक्ष्य का हिस्सा नहीं है, इसलिए यहां न तो तारीख और न ही पूर्वानुमान का दावा किया गया है। टाइमकीपिंग नीति बदल सकती है और प्रकाशन के समय वर्तमान आधिकारिक उद्धरण की हकदार है।
उस दावे को छोड़ने से सॉफ्टवेयर मार्गदर्शन कमजोर नहीं होता है। मौजूदा डेटा को अभी भी इसके पैमाने, इकाई और घड़ी स्रोत के दस्तावेजीकरण की आवश्यकता है। एक कन्वर्टर का वर्तमान व्यवहार भविष्य के नागरिक-समय अभ्यास के बारे में निर्णयों से स्वतंत्र रूप से परीक्षण योग्य रहता है।
अनुरक्षक बाद में सीधे समाधान का हवाला देकर नीति संदर्भ जोड़ सकते हैं। तब तक, किसी असमर्थित भविष्य की गारंटी को प्रकाशित करने की तुलना में समय सीमा को बाहर करना अधिक सटीक है।
आधिकारिक स्रोत के बिना भविष्य के नीतिगत प्रस्तावों को छोड़ दिया जाता है
TAI, GPS और अन्य पैमाने अलग-अलग समय का प्रतिनिधित्व कर सकते हैं, लेकिन ToolAcre उनके लिए कोई चयनकर्ता या ऑफसेट तालिका प्रदान नहीं करता है। ऐसी गिनती को Unix सेकंड के रूप में चिपकाने से केवल 1970 POSIX-शैली व्याख्या लागू होती है। एक पठनीय परिणाम अभी भी शब्दार्थ की दृष्टि से गलत हो सकता है।
अन्य पैमानों को ऐसे स्रोत से रूपांतरित करें जो प्रासंगिक क्षण में उनके मूल और संबंध को परिभाषित करता हो, फिर परिणामी Unix मान का निरीक्षण करें। कोई याद किया गया स्थिरांक न जोड़ें: लीप इतिहास से जुड़े रिश्ते बिल्कुल वही होते हैं जहां बिना स्रोत वाला अंकगणित भंगुर हो जाता है।
UI के तीन यूनिट विकल्पों में मोड की अनुपस्थिति दिखाई देती है। समय का पैमाना कोई नहीं बदलता; स्वचालित केवल दो Unix रिज़ॉल्यूशन के बीच चयन करता है।
अन्य समय पैमाने इस Unix कन्वर्टर के कार्यान्वयन से बाहर हैं
इस कन्वर्टर के लिए, सत्यापित नियम परीक्षण सीमा पर 23:59:59 से 00:00:00 तक एक सीधा कदम है। वह मॉडल सामान्य युग अंकगणित का समर्थन करता है और बताता है कि कोई `:60` आउटपुट क्यों नहीं दिखता है। यह प्रमाणित नहीं करता कि वास्तविक सीमा पार होने के दौरान ऑपरेटिंग-सिस्टम घड़ी ने कैसा व्यवहार किया।
जब छलांग से निपटने के निकट सटीकता मायने रखती है, तो रूपांतरण अंतिम प्रस्तुति चरण है, साक्ष्य स्रोत नहीं। पहले क्लॉक-स्केल दस्तावेज़, सिंक्रोनाइज़ेशन व्यवहार और कच्चे इवेंट फ़ील्ड एकत्र करें। ToolAcre फिर दिखा सकता है कि उसके परीक्षण किए गए मॉडल के तहत घोषित Unix गिनती का क्या मतलब है।
लीप सीमाओं से दूर सामान्य लॉग के लिए, यह बारीकियाँ शायद ही कभी प्रदर्शन बदलती हैं। हालाँकि, संवेदनशील सीमाओं के निकट, मॉडल का नामकरण भौतिक-दूसरी निष्ठा के झूठे दावों को रोकता है।