हिन्दी

डेवलपर टूल · Unix टाइमस्टैम्प कन्वर्टर

सेकंड या मिलीसेकंड? एक 13-अंकीय युग से 10-अंकीय युग बताना

· यह काम किस प्रकार करता है

टाइम स्टाम्प्स Unix-समय डेवलपर-वर्कफ़्लो

एक दस-अंकीय सेकंड मान और एक तेरह-अंकीय मिलीसेकंड मान एक पल की ओर इशारा करता है
मूल ToolAcre वेक्टर चित्रण

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

1700000000 या 1700000000000? - एक ही क्षण में दो तरीके लिखे गए, और डैशबोर्ड जो सुदूर भविष्य की तारीख दिखाता है

1700000000 का लॉग मान और 1700000000000 का पेलोड मान एक ही क्षण का वर्णन कर सकता है। पहले को मिलीसेकंड मानें और आपका डैशबोर्ड जनवरी 1970 में आ जाएगा; सेकंड को सेकंड मानें और इसकी तारीख भविष्य में हजारों साल आगे बढ़ जाती है। टाइमस्टैम्प केवल एक गिनती के अलावा एक इकाई और शुरुआती बिंदु है, इसलिए बिना दस्तावेज़ीकरण के create_at नामक डेटाबेस कॉलम में आवश्यक जानकारी छोड़ दी गई है।

वर्तमान दूसरी गणना में दस अंक क्यों हैं - 2001 में अरबवाँ सेकंड, दस अंकों की सीमा 2286 तक चलती है, और नौ अंकों का क्या मतलब होगा

Unix समय सामान्य POSIX सम्मेलन के तहत 1970-01-01 00:00:00 UTC से बीते हुए सेकंड की गणना करता है। 2001 में काउंटर एक अरब को पार कर गया; समसामयिक सकारात्मक तिथियों के लिए यह आमतौर पर दस दशमलव अंक है। 2286 में दस अरब तक पहुंचने तक यह दस अंकों का ही रहता है। यह बेस-टेन नोटेशन की एक संपत्ति है, न कि ISO दिनांक स्ट्रिंग में बेक किया गया नियम। युग से पहले के नकारात्मक मान और वर्तमान से बहुत दूर की तारीखें एक सरल अंक-गणना शॉर्टकट को अमान्य कर देती हैं।

मिलीसेकंड गणना में तेरह क्यों होते हैं - एक हजार का एक कारक, तीन अतिरिक्त अंक, और JavaScript और जावा के सम्मेलन कहां से आते हैं

JavaScript Date.getTime() पारंपरिक रूप से मिलीसेकंड की गणना करता है, सेकंड टाइमस्टैम्प को 1,000 से गुणा करता है। तीन शून्य वर्तमान दस-अंकीय दूसरी गणना को तेरह-अंकीय मिलीसेकंड गणना में बनाते हैं। उदाहरण के लिए 1,700,000,000 सेकंड 1,700,000,000,000 मिलीसेकंड बन जाता है; दोनों 2023-11-14T22:13:20.000Z हैं। एक कन्वर्टर जो कल्पित इकाई बताए बिना केवल विभाजक डालता है, एक वैध संख्या को एक प्रशंसनीय लेकिन गलत तारीख में बदल सकता है।

जहां अनुमान लगाना गलत हो जाता है - युग के निकट छोटे मान, 2001 से पहले की तारीखें, और भविष्य की तारीखें जहां अंकों की गिनती भेदभाव करना बंद कर देती है

ह्यूरिस्टिक्स 1970 के पास विफल हो जाता है जब एक मिलीसेकंड मान छोटा हो सकता है, 2001 से पहले जब सेकंड में दस अंक से कम होते हैं, या माइक्रोसेकंड और नैनोसेकंड काउंटर के साथ। ToolAcre डिफ़ॉल्ट रूप से 10¹¹ से नीचे के परिमाण को सेकंड और बड़े मानों को मिलीसेकंड के रूप में व्याख्या करता है, और उपयोग की गई इकाई को लेबल करता है। वह सीमा एक व्यावहारिक अनुमान है, कोई स्पष्ट प्रारूप डिकोडर नहीं। किसी विशिष्ट API द्वारा प्रदान किए गए टाइमस्टैम्प की व्याख्या उस API के दस्तावेज़ का उपयोग करके की जानी चाहिए, भले ही उसकी लंबाई असामान्य हो।

व्यावहारिक उदाहरण: एक लॉग से तीन मान - 1700000000, 1700000000000 और 1700000000000000, सेकंड, मिलीसेकंड और माइक्रोसेकंड में पढ़ें

एक उदाहरणात्मक लॉग से तीन पूर्णांक जाल दिखाते हैं। 1700000000 को सेकंड और 1700000000000 को मिलीसेकंड के रूप में समझें: दोनों का समाधान 2023-11-14T22:13:20Z है। 1700000000000000 को माइक्रोसेकंड के रूप में समझें और समान दूसरी गणना प्राप्त करने के लिए दस लाख से विभाजित करें। ToolAcre कन्वर्टर सेकंड या मिलीसेकंड स्वीकार करता है, माइक्रोसेकंड मोड नहीं: उस तीसरे नंबर को उसकी इकाई को पहले परिवर्तित किए बिना चिपकाने से इच्छित तत्काल की पुष्टि नहीं होगी। डिबगिंग करते समय हमेशा रॉ फ़ील्ड और उसकी यूनिट को एक साथ रखें।

इकाई को क्यों बताया जाना चाहिए, अनुमान नहीं लगाया जाना चाहिए - कन्वर्टर उस इकाई को कैसे दिखाता है जिसे उसने लागू किया है इसलिए गलत धारणा चुप रहने के बजाय दिखाई देती है

टाइमस्टैम्प भेजने वाली सेवा को अपने स्कीमा में यूनिट का नाम देना चाहिए या स्पष्ट ऑफसेट के साथ ISO 8601 टेक्स्ट का उपयोग करना चाहिए। यदि कोई विरासत फ़ील्ड अप्रलेखित है, तो निर्णय लेने से पहले किसी अन्य विश्वसनीय घटना समय के विरुद्ध कई मानों की तुलना करें; एक भी संयोगवश प्रशंसनीय तारीख अपर्याप्त साक्ष्य है। कन्वर्टर प्रदर्शित करता है कि उसने कौन सी इकाई लागू की है, जिससे आपको कारक-1,000 गलती को पकड़ने का मौका मिलता है। दीर्घकालिक API अनुबंध के रूप में स्वचालित अनुमान पर भरोसा करने के बजाय इकाई को स्पष्ट रूप से बदलें और तुलना करें।

इसमें क्या शामिल नहीं है - स्ट्रिंग्स के रूप में संग्रहीत टाइमस्टैम्प, ISO 8601 टेक्स्ट या स्प्रेडशीट सीरियल तिथियां, जो अलग-अलग समस्याएं हैं

यह आलेख एक्सेल सीरियल तिथियों, स्ट्रिंग्स जैसे 2026-09-28T10:15Z, या स्थानीय घड़ी रीडिंग के समय-क्षेत्र स्वरूपण की व्याख्या नहीं करता है। वे अलग-अलग प्रतिनिधित्व हैं। Unix टाइमस्टैम्प एक पल को संदर्भित करता है; एक ही क्षण विभिन्न क्षेत्रों में अलग-अलग दीवार-घड़ी समय के रूप में प्रकट होता है। लीप-सेकंड सम्मेलन भी अलग उपचार के लायक हैं, और 32-बिट हस्ताक्षरित काउंटर में 2038 में एक अतिप्रवाह समस्या है जो सेकंड-बनाम-मिलीसेकंड प्रश्न से अलग है।

टेकअवे: अंकों की गिनती करें, फिर इकाई की पुष्टि करें - और Unix टाइमस्टैम्प कन्वर्टर इकाई लेबल के साथ सेकंड और मिलीसेकंड दोनों को कैसे पढ़ता है

प्रारंभिक संकेत के रूप में अंकों की गणना करें, फिर निर्माता की बताई गई इकाई और कम से कम एक ज्ञात घटना की पुष्टि करें। Unix टाइमस्टैम्प कन्वर्टर लागू सेकंड/milliseconds धारणा को दृश्यमान बनाता है और आपके ब्राउज़र में UTC और स्थानीय प्रतिनिधित्व दोनों को प्रिंट करता है। एक साफ-सुथरी दिखने वाली तारीख को मूल्य उत्पन्न करने वाले सिस्टम के विपरीत दस्तावेज़ को ओवरराइड न करने दें।