Unix टाइमस्टैम्प को कैसे कनवर्ट करें

· 5 मिनट पढ़ने का समय

Unix टाइमस्टैम्प कंप्यूटर के समय को संग्रहीत और संप्रेषित करने का तरीका है: 1 जनवरी 1970 से सेकंड का प्रतिनिधित्व करने वाली एक एकल संख्या। वे API प्रतिक्रियाओं, डेटाबेस रिकॉर्ड, लॉग फ़ाइलों और JWT टोकन में दिखाई देते हैं। जब आपको पता लगाना हो कि 1711824000 वास्तव में कौन सी तारीख है, तो आपको एक कनवर्टर की आवश्यकता है। एक ब्राउज़र-आधारित कनवर्टर तुरंत गणित को संभालता है और आपको दोनों दिशाओं में जाने देता है (टाइमस्टैम्प से तारीख, तारीख से टाइमस्टैम्प)।

Unix टाइमस्टैम्प कैसा दिखता है

टाइमस्टैम्पप्रकारमानव-पठनीय
0सेकंड1 जनवरी 1970 00:00:00 UTC
1000000000सेकंड9 सितंबर 2001 01:46:40 UTC
1234567890सेकंड13 फरवरी 2009 23:31:30 UTC
1711824000सेकंड31 मार्च 2024 00:00:00 UTC
1711824000000मिलीसेकंड31 मार्च 2024 00:00:00 UTC
2147483647सेकंड19 जनवरी 2038 03:14:07 UTC (32-बिट साइन्ड अधिकतम)

सेकंड और मिलीसेकंड के बीच का अंतर तीन अतिरिक्त शून्य हैं। 10-अंकीय संख्या सेकंड में है; 13 अंक मिलीसेकंड में है। 2024 तक, सभी सेकंड-आधारित Unix टाइमस्टैम्प 10 अंकों के हैं और नवंबर 2286 तक ऐसे ही रहेंगे।

टाइमस्टैम्प कैसे परिवर्तित करें

  1. एक टाइमस्टैम्प या तारीख दर्ज करें: एक Unix टाइमस्टैम्प पेस्ट करें एक पठनीय तारीख में परिवर्तित करने के लिए, या टाइमस्टैम्प प्राप्त करने के लिए एक तारीख दर्ज करें।
  2. प्रारूप की जाँच करें: कनवर्टर संख्या की लंबाई के आधार पर सेकंड बनाम मिलीसेकंड को स्वचालित रूप से पहचानता है।
  3. परिणाम पढ़ें: अपने स्थानीय समय क्षेत्र, UTC, और ISO 8601 प्रारूप में तारीख देखें।

Unix समय का संक्षिप्त इतिहास

Unix समय को पहली बार नवंबर 1971 में Bell Labs में प्रकाशित Unix Programmer's Manual में परिभाषित किया गया था। मूल युग 1 जनवरी 1971 था, लेकिन इसे जल्द ही 1 जनवरी 1970 में बदल दिया गया और POSIX.1 (1988) में मानकीकृत किया गया।

1970 का चयन मनमाना लेकिन व्यावहारिक था: Unix 1969-1971 में विकसित किया गया था, और OS के जन्म के पास से गिनती शुरू करना उचित लगा। 1970 से सेकंड गिनने वाला एक 32-बिट साइन्ड पूर्णांक दिसंबर 1901 से जनवरी 2038 तक की सीमा देता था, जिसे डिज़ाइनरों ने पर्याप्त माना।

यह नहीं है। «वर्ष 2038 समस्या» (जिसे Y2K38 भी कहा जाता है) वह क्षण है जब 32-बिट साइन्ड Unix टाइमस्टैम्प ओवरफ्लो होते हैं: युग के 2147483647 सेकंड बाद, अगला टिक एक नकारात्मक संख्या में रोल ओवर करता है जिसे सिस्टम दिसंबर 1901 के रूप में व्याख्यायित करते हैं। अधिकांश आधुनिक सिस्टम 2000 और 2010 के दशक में 64-बिट पूर्णांक टाइमस्टैम्प में स्थानांतरित हो गए, लेकिन कुछ एम्बेडेड डिवाइस, पुराने डेटाबेस और विरासत फ़ाइल प्रारूप अभी भी 32-बिट समय का उपयोग करते हैं और 2038 से पहले पैच की आवश्यकता होगी।

Unix समय अब कंप्यूटर सिस्टम में समय का प्रतिनिधित्व करने के लिए वास्तविक मानक है। JSON API, डेटाबेस पंक्ति टाइमस्टैम्प, JWT समाप्ति, ब्लॉकचैन ब्लॉक समय, IoT सेंसर रीडिंग: लगभग सभी Unix युग का सीधे या परोक्ष रूप से उपयोग करते हैं।

सेकंड, मिलीसेकंड, माइक्रोसेकंड, नैनोसेकंड

विभिन्न प्रणालियाँ अलग-अलग सटीकता का उपयोग करती हैं:

एक 19-अंकीय टाइमस्टैम्प मिलीसेकंड की अपेक्षा रखने वाले कनवर्टर्स को भ्रमित कर सकता है; जब आप असामान्य संख्याएँ देखें तो स्रोत दस्तावेज़ की दो बार जाँच करें।

आप टाइमस्टैम्प कहाँ मिलते हैं

कोड में टाइमस्टैम्प

सामान्य भाषाओं में त्वरित रूपांतरण:

JavaScript:

new Date(1711824000 * 1000)            // सेकंड से (1000 से गुणा करें)
new Date(1711824000000)                // मिलीसेकंड से
Math.floor(Date.now() / 1000)          // वर्तमान समय सेकंड में
Date.now()                             // वर्तमान समय मिलीसेकंड में

Python:

from datetime import datetime, timezone
datetime.fromtimestamp(1711824000, tz=timezone.utc)
datetime.now(timezone.utc).timestamp()  # वर्तमान समय सेकंड में (float)

Bash:

date -u -d @1711824000                 # GNU date (Linux)
date -u -r 1711824000                  # BSD date (macOS)
date +%s                               # वर्तमान समय सेकंड में

SQL (PostgreSQL):

SELECT TO_TIMESTAMP(1711824000);       -- युग को टाइमस्टैम्प में बदलें
SELECT EXTRACT(EPOCH FROM NOW());      -- वर्तमान युग

Go:

time.Unix(1711824000, 0)               // सेकंड से
time.Now().Unix()                      // वर्तमान समय सेकंड में

समय क्षेत्र संचालन

यह वह जगह है जहाँ अधिकांश टाइमस्टैम्प बग छिपते हैं:

API में टाइमस्टैम्प भेजते समय, हमेशा UTC सेकंड का उपयोग करें। उपयोगकर्ताओं को प्रदर्शित करते समय, उनके स्थानीय समय क्षेत्र में परिवर्तित करें। कनवर्टर दोनों दिशाओं को संभालता है।

सामान्य कठिनाइयाँ

सुझाव

गोपनीयता

Unix टाइमस्टैम्प कनवर्टर पूरी तरह से आपके ब्राउज़र में चलता है। आप जो टाइमस्टैम्प और तारीखें दर्ज करते हैं वे कभी आपके डिवाइस को नहीं छोड़ते। यह मायने रखता है क्योंकि टाइमस्टैम्प संवेदनशील हो सकते हैं: वे आंतरिक बुनियादी ढाँचे की समय व्यवस्था को प्रकट करने वाली लॉग फ़ाइलों से हो सकते हैं, एम्बेडेड उपयोगकर्ता/सत्र जानकारी के साथ JWT टोकन, आंतरिक API डिबगिंग जो तीसरे पक्ष के साथ साझा नहीं की जानी चाहिए। क्लाउड टाइमस्टैम्प कनवर्टर्स «सुधार» उद्देश्यों के लिए इनपुट लॉग कर सकते हैं; केवल-ब्राउज़र कनवर्टर में शून्य एक्सपोज़र है।

ब्राउज़र-आधारित रूपांतरण पृष्ठ लोड होने के बाद ऑफ़लाइन भी काम करता है, और यह इतनी तेज़ है कि आप एक टाइमस्टैम्प को क्षेत्र में रख सकते हैं और उसी क्षण में तारीख देख सकते हैं।

अक्सर पूछे जाने वाले प्रश्न

Unix epoch समय क्या है?

Unix epoch समय (जिसे POSIX समय या Unix टाइमस्टैम्प भी कहा जाता है) 1 जनवरी 1970 को 00:00:00 UTC से बीते सेकंडों की संख्या है। यह वह मानक तरीका है जिसमें कंप्यूटर आंतरिक रूप से समय का प्रतिनिधित्व करते हैं।

सेकंड और मिलीसेकंड में टाइमस्टैम्प के बीच क्या अंतर है?

सेकंड में Unix टाइमस्टैम्प 10 अंकों के होते हैं (उदाहरण के लिए 1711824000)। मिलीसेकंड में टाइमस्टैम्प 13 अंकों के होते हैं (उदाहरण के लिए 1711824000000)। JavaScript मिलीसेकंड का उपयोग करता है, अधिकांश API और डेटाबेस सेकंड का उपयोग करते हैं। कन्वर्टर लंबाई के आधार पर स्वचालित रूप से पता लगाता है।

मेरा कनवर्ट किया गया समय कई घंटे बंद क्यों है?

टाइमस्टैम्प हमेशा UTC में होते हैं। कन्वर्टर UTC और आपके स्थानीय समय दोनों को प्रदर्शित करता है। यदि परिणाम आपकी अपेक्षा से मेल नहीं खाता, तो आप शायद एक UTC आउटपुट की एक स्थानीय समय से तुलना कर रहे हैं, या इसके विपरीत।

2038 में क्या होता है?

Unix टाइमस्टैम्प को 32-बिट हस्ताक्षरित पूर्णांक में संग्रहीत करने वाले सिस्टम 19 जनवरी 2038 को ओवरफ़्लो होंगे। अधिकांश आधुनिक सिस्टम 64-बिट पूर्णांक का उपयोग करते हैं, जो रेंज को किसी भी व्यावहारिक चिंता से परे बढ़ाते हैं।