डेवलपर टूल · Unix टाइमस्टैम्प कन्वर्टर
प्रत्येक युग 1970 नहीं है: NTP, Windows FILETIME, GPS और Excel दिनांक
· पेजभूमि
टाइम स्टाम्प्स डेटा-प्रारूप डिबगिंग
Unix की 1970 उत्पत्ति कई में से केवल एक है। यह पोस्ट उन युगों का सर्वेक्षण करती है जो आपको फ़ाइलों और प्रोटोकॉल (1900, 1601, 1904, 1980, 2001) में मिलेंगे और यह दिखाता है कि ऐसे मान को कैसे पहचाना जाए जो कभी भी Unix समय का नहीं था।
टाइमस्टैम्प जो 1900 में पहुंचा - नेटवर्क कैप्चर से एक मान जिसे कोई भी इकाई विकल्प समझदार नहीं बना सकता
पैकेट कैप्चर से कोई संख्या सेकंड और मिलीसेकंड दोनों के अंतर्गत बकवास उत्पन्न कर सकती है क्योंकि इकाई एकमात्र छिपा हुआ पैरामीटर नहीं है। युग का अर्थ है एक चुना हुआ शून्य बिंदु; Unix 1970 का उपयोग करता है, जबकि अन्य प्रोटोकॉल कहीं और से गिना जा सकता है। पुनर्स्केलिंग से गलत उत्पत्ति की मरम्मत नहीं की जा सकती।
जब दोनों ToolAcre रीडिंग ज्ञात घटना समय के साथ विरोधाभासी हों, तो टॉगल करना बंद कर दें। फ़ील्ड नाम, निर्माता, प्रोटोकॉल संस्करण और दस्तावेज़ीकृत मूल की पहचान करें। एक संभावित वर्ष प्रकट होने तक अंकों को बार-बार काटने से जांच संयोग में बदल जाती है।
यही निदान तब लागू होता है जब कोई समझदार तारीख सामने आती है लेकिन आसपास की घटनाओं के साथ उसका टकराव होता है। संभाव्यता एक कमज़ोर जांच है; उद्गम और एक ज्ञात संदर्भ घटना अधिक मजबूत होती है।
NTP और 1900 - 1900-01-01 के बाद से 32-बिट अंश के साथ सेकंड, और 2036 रोलओवर लाता है
कार्यपुस्तिका में NTP की उत्पत्ति, आंशिक लेआउट और रोलओवर तिथि की जानकारी दी गई। Unix कन्वर्टर में कोई भी लागू या परीक्षण नहीं किया गया है, इसलिए यह आलेख उन विशिष्टताओं को प्रमाणित नहीं करता है। प्रेषक और पार्सर द्वारा उपयोग किए गए प्रोटोकॉल दस्तावेज़ के अनुसार नेटवर्क कैप्चर को डिकोड किया जाना चाहिए।
Unix सेकंड प्राप्त करने के बाद ही मान इस टूल में दर्ज किया जाना चाहिए। युग या रोलओवर संदर्भ रखें क्योंकि एक निश्चित-चौड़ाई वाला फ़ील्ड अकेले इसकी पहचान नहीं कर सकता है। एक कल्पित युग का परिष्कृत UTC परिणाम आंतरिक रूप से सुसंगत और बाहरी रूप से गलत हो सकता है।
प्रोटोकॉल फ़ील्ड संपूर्ण और आंशिक घटकों को भी विभाजित कर सकते हैं। निर्दिष्ट पैमाने के बिना उन्हें जोड़ने या दशमलव करने से एक नई संख्या बन जाती है जिसका कोई भी अनुवर्ती डिकोडर इरादा नहीं रखता।
NTP रूपांतरण विवरण और रोलओवर व्यवहार के लिए स्रोत दस्तावेज़ की आवश्यकता होती है जो यहां मौजूद नहीं है
इसी तरह, नामित विंडोज़ और .NET काउंटर स्वीकृत मोड नहीं हैं। भंडार में उनकी उत्पत्ति या टिक स्केल के लिए कोई स्थिरांक नहीं है। डेवलपर द्वारा रूपांतरण का प्रयास करने से पहले उनके बड़े दशमलव मान JavaScript की सटीक पूर्णांक सीमा से अधिक हो सकते हैं।
प्लेटफ़ॉर्म की प्रलेखित परिभाषा में आधारित एक पूर्णांक-सुरक्षित लाइब्रेरी का उपयोग करें, मूल को पाठ या विस्तृत पूर्णांक के रूप में संरक्षित करें, और फिर एक Unix मान उत्सर्जित करें। फ़्लोटिंग पॉइंट में याद किए गए ऑफसेट को न घटाएं। निम्न स्तर पर सटीकता तब मायने रखती है जब स्रोत रिज़ॉल्यूशन मिलीसेकंड से बेहतर होता है।
राउंड-ट्रिप परीक्षण में गैर-शून्य उप-सेकंड अंकों वाला मान शामिल होना चाहिए। संपूर्ण-सेकंड फिक्स्चर यह उजागर नहीं कर सकता कि 100-नैनोसेकंड या मिलीसेकंड शेष सही ढंग से संरक्षित किया गया था या नहीं।
FILETIME और .NET परिभाषाएँ ToolAcre द्वारा कार्यान्वित नहीं की जाती हैं और स्मृति से घोषित नहीं की जाती हैं
स्प्रेडशीट तिथियां एक अलग प्रतिनिधित्व पेश करती हैं: कार्यपुस्तिका दिनांक-प्रणाली सेटिंग्स द्वारा व्याख्या की गई एक संख्यात्मक क्रम। कार्यपुस्तिका के 1900 विचित्र और पुराने मैक दावे के लिए स्प्रेडशीट स्रोतों की आवश्यकता होती है और इन्हें यहां स्थापित नहीं किया गया है। ToolAcre कार्यपुस्तिका मेटाडेटा नहीं पढ़ता है.
स्प्रेडशीट-अवेयर टूलिंग के साथ फ़ाइल का निरीक्षण करें, कॉन्फ़िगर की गई दिनांक प्रणाली निर्धारित करें और उस लाइब्रेरी का उपयोग करके आंशिक-दिन की सटीकता को संरक्षित करें। किCCरियल को Unix सेकंड के रूप में मानने से एक प्रारंभिक-1970 तारीख उत्पन्न हो सकती है जो एक सामान्य स्केल बग की तरह दिखती है जबकि वास्तविक समस्या मूल और इकाई एक साथ है।
कार्यपुस्तिका सेटिंग्स एक फ़ाइल के साथ यात्रा कर सकती हैं, इसलिए दो समान दिखने वाले धारावाहिक अलग-अलग मूल का उपयोग कर सकते हैं। रूपांतरण दस्तावेज़ सीमा पर होता है जहां वह मेटाडेटा उपलब्ध है।
स्प्रेडशीट सीरियल सिस्टम और विचित्रताओं के लिए स्प्रेडशीट-विशिष्ट साक्ष्य की आवश्यकता होती है
रूपरेखा में नामित GPS और Apple-संबंधी युग भी कार्यान्वयन से बाहर हैं। उनके रिश्तों में निरंतर मूल बदलाव से परे पैमाने की परंपराएं शामिल हो सकती हैं। आधिकारिक साक्ष्य के बिना कोई भी मौजूदा ऑफसेट या रूपांतरण फॉर्मूला यहां प्रकाशित नहीं किया जाता है।
सामान्य निदान अभी भी स्थानांतरित होता है: निर्माता से शून्य, टिक अवधि और लीप कन्वेंशन की पहचान करें। फिर एक उपयुक्त लाइब्रेरी के साथ कन्वर्ट करें और उसी डेटा सेट से ज्ञात टाइमस्टैम्प के विरुद्ध सत्यापित करें। तीन स्वतंत्र तथ्य दशमलव-चौड़ाई अनुमान से अधिक सुरक्षित हैं।
छलांग सम्मेलनों के दौरान यह सावधानी विशेष रूप से महत्वपूर्ण है। एक स्थिरांक जो एक पैमाने और तारीख के लिए काम करता है, वह सिस्टम की प्रत्येक जोड़ी के बीच एक कालातीत संबंध नहीं हो सकता है।
GPS और Apple युग संबंधों को इस मॉड्यूल के बाहर आधिकारिक स्रोतों की आवश्यकता होती है
एक रक्षात्मक कार्य विधि एक ज्ञात क्षण से शुरू होती है, उदाहरण के लिए ToolAcre का सत्यापित `2025-02-03T10:23:00.000Z`, 1,738,578,180 Unix सेकंड के बराबर। किसी अन्य प्रलेखित युग के लिए, पूर्णांक अंकगणित के साथ उस सिस्टम की आधिकारिक उत्पत्ति और पैमाने का उपयोग करके इसके मूल्य की गणना करें, फिर उसी परिभाषा का उपयोग करके इसे वापस परिवर्तित करें।
राउंड ट्रिप की तुलना Unix ISO स्ट्रिंग से करें और व्युत्पत्ति बनाए रखें। यह आलेख जानबूझकर पांच-युग तालिका को उन स्थिरांकों से नहीं भरता है जिन्हें पढ़ा नहीं गया था। विधि हर धारणा को उजागर करती है और जिस भी प्रोटोकॉल या फ़ाइल प्रारूप ने वास्तव में डेटा का उत्पादन किया है, उसके विरुद्ध समीक्षा की जा सकती है।
कार्य विधि: असत्यापित स्थिरांकों को प्रकाशित करने के बजाय प्रलेखित युगों में एक पल प्राप्त करें
ToolAcre विदेशी युगों को स्वचालित रूप से पहचानता या परिवर्तित नहीं करता है। इसका यूनिट मेनू कॉन्फ़िगरेशन में Unix परिभाषा के तहत सेकंड और मिलीसेकंड दोनों कहता है। स्वचालित पहचान केवल 10¹¹ परिमाण वाले पैमानों के बीच चयन करती है; यह कभी भी शून्य बिंदु नहीं बदलता है।
वह संकीर्ण अनुबंध झूठे विश्वास को रोकता है। यदि कोई विदेशी गणना किसी संभावित Unix तिथि पर उतरती है, तो कन्वर्टर यह चेतावनी नहीं दे सकता कि उत्पत्ति गलत थी। अंकगणित से पहले उत्पत्ति को दर्ज करना होगा। मैन्युअल रनबुक पर निर्भर रहने के बजाय कोड में परिवर्तन का दस्तावेजीकरण करें।
दृश्यमान स्वचालित लेबल केवल सेकंड या मिलीसेकंड की रिपोर्ट करता है। इसे कभी भी साक्ष्य के रूप में उद्धृत नहीं किया जाना चाहिए कि मूल का पता चला, क्योंकि स्रोत में ऐसी कोई शाखा मौजूद नहीं है।
टेकअवे: जानें कि आप किस शून्य से गिनती कर रहे हैं - और Unix टाइमस्टैम्प कन्वर्टर आपको कैसे स्पष्ट रूप से बताता है कि यह Unix सेकंड या मिलीसेकंड पढ़ता है
जानें कि आप किस शून्य से गिनती कर रहे हैं, एक टिक कितना बड़ा है और स्रोत अपने समय पैमाने को कैसे संभालता है। 1970 UTC के बाद से Unix कन्वर्टर उन प्रश्नों के सेकंड या मिलीसेकंड में हल होने के बाद ही उत्तर देता है। यह एक पूर्णांक से शब्दार्थ का अनुमान नहीं लगा सकता।
उत्पत्ति की जांच करने के लिए एक संकेत के रूप में अविश्वसनीय दोहरी रीडिंग का उपयोग करें, न कि विभाजक को आज़माते रहने की अनुमति के रूप में। एक बार स्रोतित रूपांतरण एक Unix मान उत्पन्न करता है, ToolAcre अपनी स्वयं की धारणा को दृश्यमान रखते हुए एक उपयोगी स्वतंत्र UTC और स्थानीय विवेक जांच प्रदान करता है।
एक अच्छा एडाप्टर विदेशी प्रकार का नाम देता है, एक स्रोत परिवर्तन करता है और एक ब्रांडेड Unix मान उत्सर्जित करता है। वह डिज़ाइन कच्चे काउंटरों को सामान्य दिनांक कंस्ट्रक्टरों में लीक होने से रोकता है।