Unix टाइमस्टैम्प क्या है? Epoch टाइम की संपूर्ण व्याख्या
त्वरित जवाब
Unix timestamp 1 जनवरी 1970, 00:00:00 UTC (Unix epoch) से सेकंडों की संख्या है। यह timezone-स्वतंत्र और तुलना में सरल है। JavaScript millisecond (13 अंक); Unix और अधिकांश API सेकंड (10 अंक) उपयोग करते हैं। हमारे मुफ्त Timestamp Converter से बदलें।
परिचय
Unix timestamp (Unix epoch time, POSIX time या Unix time भी) 1 जनवरी 1970, 00:00:00 UTC से बीते सेकंडों की संख्या है —यह क्षण Unix epoch कहलाता है। Timestamp ऑपरेटिंग सिस्टम, डेटाबेस, logs और API में व्यापक उपयोग होते हैं क्योंकि timezone-स्वतंत्र (हमेशा UTC), तुलना में सरल और कॉम्पैक्ट हैं। लेकिन मानव-पठनीय नहीं —1693526400 बिना रूपांतरण के अर्थहीन है।
क्रमशः
-
यूनिक्स युग को समझें
यूनिक्स युग 1 जनवरी 1970, 00:00:00 समन्वित सार्वभौमिक समय (UTC) है। यूनिक्स टाइमस्टैम्प इस क्षण से सेकंड की गिनती है। सकारात्मक टाइमस्टैम्प युग के बाद के हैं; नकारात्मक टाइमस्टैम्प (कुछ प्रणालियों द्वारा समर्थित) इसके पहले हैं।
-
सेकंड को मिलीसेकंड से अलग करें
यूनिक्स टाइमस्टैम्प आमतौर पर सेकंड में होते हैं (2026 तक 10 अंक, उदाहरण के लिए, 1693526400)। जावास्क्रिप्ट की Date.now() और Date.getTime() मिलीसेकेंड (13 अंक, उदाहरण के लिए, 16935264000000) लौटाते हैं। हमेशा जांचें कि API किस इकाई की अपेक्षा करता है - उन्हें मिलाना सबसे आम टाइमस्टैम्प बग है।
-
समय क्षेत्र की स्वतंत्रता को समझें
यूनिक्स टाइमस्टैम्प हमेशा यूटीसी होते हैं। वे उपयोगकर्ता के समय क्षेत्र पर निर्भर नहीं हैं. किसी विशिष्ट समयक्षेत्र में टाइमस्टैम्प प्रदर्शित करने के लिए, इसे एक तारीख में बदलें और समयक्षेत्र ऑफसेट लागू करें। यह टाइमस्टैम्प को भंडारण और तुलना के लिए आदर्श बनाता है।
-
वर्ष 2038 समस्या के बारे में जानें
टाइमस्टैम्प के लिए 32-बिट हस्ताक्षरित पूर्णांक का उपयोग करने वाले सिस्टम 19 जनवरी, 2038, 03:14:07 UTC - 'Y2038 समस्या' को ओवरफ्लो कर देंगे। 64-बिट पूर्णांक या जावास्क्रिप्ट संख्या (64-बिट फ्लोट्स) का उपयोग करने वाले सिस्टम अप्रभावित हैं। आधुनिक सिस्टम काफी हद तक Y2038-सुरक्षित हैं, लेकिन लीगेसी एम्बेडेड सिस्टम नहीं हो सकते हैं।
उदाहरण
किसी ज्ञात दिनांक के लिए टाइमस्टैम्प
इनपुट: 2023-09-01 00:00:00 यूटीसी
उत्पादन: 1693526400 (सेकंड) या 1693526400000 (मिलीसेकंड)
यूनिक्स युग
इनपुट: 1970-01-01 00:00:00 यूटीसी
उत्पादन: 0
Y2038 समस्या सीमा
इनपुट: 2038-01-19 03:14:07 यूटीसी
उत्पादन: 2147483647 (अधिकतम 32-बिट हस्ताक्षरित पूर्णांक)
सामान्य समस्या
- सेकंड और मिलीसेकंड को मिलाना—जावास्क्रिप्ट मिलीसेकंड (Date.now()) का उपयोग करता है, यूनिक्स और अधिकांश APIs सेकंड का उपयोग करते हैं। एमएस को सेकंड में बदलने के लिए 1000 से विभाजित करें; इसके विपरीत 1000 से गुणा करें।
- समयक्षेत्र भ्रम—टाइमस्टैम्प यूटीसी हैं। प्रदर्शित करते समय, उपयोगकर्ता के स्थानीय समयक्षेत्र में कनवर्ट करें या UTC निर्दिष्ट करें। कच्चे टाइमस्टैम्प पर ऑफसेट लागू न करें।
- वर्ष 2038 समस्या—2038-01-19 को 32-बिट हस्ताक्षरित पूर्णांक टाइमस्टैम्प ओवरफ़्लो। इससे बचने के लिए 64-बिट पूर्णांक या जावास्क्रिप्ट संख्याओं का उपयोग करें।
- नकारात्मक टाइमस्टैम्प—1970-01-01 से पहले की तारीखों में नकारात्मक टाइमस्टैम्प हैं। कुछ सिस्टम उनका समर्थन नहीं करते.
सुझावों
- हमेशा जांचें कि क्या API सेकंड या मिलीसेकंड की अपेक्षा करता है - यह सबसे आम टाइमस्टैम्प बग है।
- APIs में मानव-पठनीय टाइमस्टैम्प के लिए ISO 8601 स्ट्रिंग्स (उदाहरण के लिए, "2023-09-01T00:00:00Z") का उपयोग करें; भंडारण और गणना के लिए यूनिक्स युग का उपयोग करें।
- JavaScript Date.now() मिलीसेकंड लौटाता है; सेकंड पाने के लिए 1000 और फर्श से भाग दें।
- अपने ब्राउज़र में टाइमस्टैम्प और मानव-पठनीय तिथियों के बीच कनवर्ट करने के लिए हमारे टाइमस्टैम्प कनवर्टर का उपयोग करें।