वेब और एन्कोडिंग · 5 मिनट पढ़ें
टाइमस्टैम्प कनवर्टर: अनुमान के बिना युग का समय
यूनिक्स समय 1970-01-01T00:00:00 UTC के बाद से सेकंड की संख्या है - एक पूर्णांक जिसे हर सिस्टम समझता है और लगभग हर डेवलपर ने कम से कम एक बार गलत पढ़ा है। एक टाइमस्टैम्प कनवर्टर उस पूर्णांक को किसी ऐसी चीज़ में बदल देता है जिसे मनुष्य जांच सकता है और फिर से वापस कर सकता है, जो आमतौर पर उस प्रश्न का उत्तर देने का सबसे तेज़ तरीका है जिसके साथ हर लॉग जांच शुरू होती है: यह वास्तव में कब हुआ था?
अद्यतन
सेकंड या मिलीसेकंड: बग जो घटित होता रहता है
दस अंक सेकंड है; तेरह मिलीसेकंड है. इसे गलत समझें और तारीख़ 1970 या अब से हज़ारों साल बाद आ जाएगी - एक ऐसी त्रुटि जिसे देखने के बाद तुरंत पहचाना जा सकता है, यही कारण है कि यह पहचानने लायक है। जावास्क्रिप्ट का `Date.now()` मिलीसेकंड लौटाता है जबकि अधिकांश सर्वर भाषाएं और डेटाबेस सेकंड संग्रहीत करते हैं, इसलिए ब्राउज़र और API के बीच की सीमा वह जगह है जहां आमतौर पर गलती होती है।
1760000000 → 2025-10-09 09:33:20 UTC (seconds)
1760000000000 → 2025-10-09 09:33:20 UTC (milliseconds)
यूटीसी सत्य है; स्थानीय समय एक प्रस्तुतिकरण विकल्प है
एक युग मान असंदिग्ध है क्योंकि यह परिभाषा के अनुसार यूटीसी है। जब आप इसे प्रदर्शित करते हैं तो भ्रम प्रकट होता है: एक ही पल हर समय क्षेत्र में एक अलग दीवार-घड़ी का समय होता है, और एक समर्थन टिकट जो कहता है कि "यह दोपहर 3 बजे हुआ" केवल समय क्षेत्र संलग्न होने पर ही उपयोगी होता है। युग या आईएसओ 8601 यूटीसी को संग्रहीत और प्रसारित करें, प्रदर्शन के लिए स्थानीय समय में परिवर्तित करें, और मानव द्वारा पढ़ी जाने वाली किसी भी चीज़ में हमेशा क्षेत्र को शामिल करें।
जहां टाइमस्टैम्प वास्तविक कार्य में दिखाई देते हैं
- लॉग लाइनें - सबसे तेज़ तरीका अर्थ के लिए पढ़ने से पहले युग कॉलम को पढ़ने योग्य तिथियों में परिवर्तित करना है।
- API प्रतिक्रियाएँ - `created_at`, `expires_at` और कैश हेडर, परिवर्तित होने के बाद सभी अधिक उपयोगी।
- JWT दावे - `exp` और `iat` युग सेकंड हैं, यही कारण है कि एक समाप्ति जांच एक घटाव है।
- डेटाबेस पंक्तियाँ - एक संग्रहीत युग की तुलना अब से करना अंकगणित है; इसकी तुलना "पिछले मंगलवार" से करने पर रूपांतरण की आवश्यकता है।
टाइमज़ोन के बिना टाइमस्टैम्प एक पाठक के लिए प्रतीक्षा कर रहा बग है। मुद्रित तिथियाँ स्पष्ट ऑफसेट के साथ ISO 8601 में हैं, जैसे 2025-10-09T09:33:20Z।
2038 सीमा
2038-01-19 को युग समाप्त होने के बाद से 32-बिट सेकंड पर हस्ताक्षर किए गए। उस स्टोरेज पर निर्मित सिस्टम - जिसमें पुराने MySQL कॉलम और 32-बिट टाइम_टी प्लेटफॉर्म शामिल हैं - बाद की तारीखों का प्रतिनिधित्व नहीं कर सकते हैं, और विफलता मोड एक त्रुटि के बजाय 1901 में एक रैप है। यदि आप अगले दशक तक जीवित रहने के इरादे से कुछ भी डिज़ाइन कर रहे हैं, तो अभी 64-बिट पूर्णांक या मूल दिनांक प्रकार संग्रहीत करें; बाद में प्रवासन कठिन हो जाता है।
ब्राउज़र में दोनों तरीकों से कनवर्ट करें
YamlBox टाइमस्टैम्प कनवर्टर सेकंड या मिलीसेकंड स्वीकार करता है, UTC और स्थानीय व्याख्याओं को ISO 8601 आउटपुट के साथ-साथ दिखाता है, और एक तारीख से एक युग तक दूसरे रास्ते पर जाता है। यह पूरी तरह से क्लाइंट-साइड चलता है, इसलिए उत्पादन लॉग से टाइमस्टैम्प आपकी मशीन को कभी नहीं छोड़ते हैं।
टाइमस्टैम्प कनवर्टर - अक्सर पूछे जाने वाले प्रश्न
मेरा टाइमस्टैम्प 1970 की तारीख क्यों दिखाता है?
लगभग हमेशा एक इकाई बेमेल होती है: मिलीसेकंड की व्याख्या सेकंड के रूप में की गई थी, या मान शून्य है क्योंकि कोई फ़ील्ड कभी भी पॉप्युलेट नहीं किया गया था। आवश्यकतानुसार 1000 से गुणा या भाग करें - दस और तेरह अंकों के बीच का अंतर ही संपूर्ण निदान है।
युग समय और आईएसओ 8601 के बीच क्या अंतर है?
वे उसी क्षण का वर्णन करते हैं। एपोच यूटीसी सेकंड में एक पूर्णांक है, कॉम्पैक्ट और अंकगणित और भंडारण के लिए एकदम सही है; आईएसओ 8601 ऑफसेट के साथ एक पठनीय स्ट्रिंग है, जो मनुष्यों, लॉग और एपीआई के लिए बेहतर है जो सुपाठ्य रहना चाहिए।
क्या यूनिक्स टाइमस्टैम्प में टाइमज़ोन शामिल हैं?
नहीं - एक युग मान हमेशा UTC होता है। केवल इसके प्रतिपादन में एक समय क्षेत्र होता है, यही कारण है कि स्थानीय तिथि में परिवर्तित करने के लिए यह जानना आवश्यक है कि पाठक किस क्षेत्र में है, और क्यों दो डेवलपर्स एक ही टाइमस्टैम्प के बारे में असहमत हो सकते हैं जबकि दोनों सही हैं।
इस पोस्ट में उल्लिखित उपकरण
पढ़ने के लिए और लेख
6 मिनट पढ़ें
JWT डिकोडर: टोकन के अंदर क्या है, और क्या नहीं है
टोकन के हेडर, पेलोड और समाप्ति का निरीक्षण करने के लिए एक डिकोडर का उपयोग करें - और समझें कि डिकोडिंग सत्यापित क्यों नहीं हो रही है, अधिकांश 401 के पीछे दावे की जांच होती है।
5 मिनट पढ़ें
URL एन्कोडिंग: कब बचना है, और कब आप चीज़ों को तोड़ रहे हैं
URL एनकोड और डीकोड सही ढंग से - आरक्षित वर्ण, प्लस बनाम %20, एनकोडयूआरआई बनाम एनकोडयूआरआईकंपोनेंट, और टूटे हुए लिंक के पीछे डबल-एन्कोडिंग बग।