Unix टाइमस्टैम्प से तारीख कन्वर्टर

Unix टाइमस्टैम्प को पढ़ने योग्य तारीख और समय में बदलें — या किसी भी तारीख को वापस Unix टाइमस्टैम्प में बदलें। सेकंड और मिलीसेकंड समर्थित हैं।

इस टूल को शेयर करें

अपनी साइट में जोड़ें

Unix टाइमस्टैम्प क्या है?

Unix टाइमस्टैम्प, जिसे Unix time या POSIX time भी कहा जाता है, 1970-01-01 00:00:00 UTC के बाद से गुजरे हुए सेकंड की संख्या है, जिसे Unix epoch कहते हैं। यह कंप्यूटिंग में व्यापक रूप से इस्तेमाल होने वाला मानक है क्योंकि यह समय के किसी बिंदु को एक ही पूर्णांक के रूप में दर्शाता है, जिससे भंडारण, तुलना और गणना सरल हो जाती है।

JavaScript आंतरिक रूप से मिलीसेकंड में काम करता है, इसलिए Date.now() Unix टाइमस्टैम्प को 1000 से गुणा करके देता है। कई API, डेटाबेस और बैकएंड सिस्टम इसके बजाय सेकंड का उपयोग करते हैं। यह उपकरण दोनों प्रारूप स्वीकार करता है और आपके द्वारा दर्ज की गई संख्या के आकार के आधार पर सेकंड या मिलीसेकंड को स्वचालित रूप से पहचानता है।

उल्लेखनीय Unix टाइमस्टैम्प

टाइमस्टैम्पतारीख (UTC)नोट
01970-01-01 00:00:00Unix epoch
1,000,000,0002001-09-09 01:46:401 बिलियन सेकंड
2,000,000,0002033-05-18 03:33:202 बिलियन सेकंड
2,147,483,6472038-01-19 03:14:072038 की समस्या (अधिकतम 32-bit)

1970 क्यों?

Unix epoch 1 जनवरी 1970 को परंपरा से और आंशिक रूप से व्यावहारिक बाधाओं से चुना गया था। Unix को 1960 के दशक के अंत और 1970 के दशक की शुरुआत में Bell Labs में विकसित किया गया था। डेवलपर्स को अपने समय प्रतिनिधित्व के लिए एक हाल की, गोल शुरुआत तारीख की जरूरत थी। 1 जनवरी 1970 व्यावहारिक होने के लिए काफी हाल की थी और इसका कोई विशेष तकनीकी महत्व नहीं था — यह बस एक सुविधाजनक संदर्भ बिंदु था।

अन्य सिस्टम में वैकल्पिक epoch तारीखें हैं: Windows FILETIME epoch 1 जनवरी 1601 है; GPS समय 6 जनवरी 1980 से शुरू हुआ; NTP epoch 1 जनवरी 1900 है। सिस्टम के बीच रूपांतरण करते समय, प्रत्येक सिस्टम का epoch जानना आवश्यक है।

सेकंड बनाम मिलीसेकंड

मूल Unix टाइमस्टैम्प सेकंड में है। अधिकांश सर्वर-साइड भाषाएं और सिस्टम (Unix shell, Python का time.time(), PHP का time(), अधिकांश डेटाबेस) सेकंड का उपयोग करते हैं। JavaScript का Date.now() और new Date().getTime() मिलीसेकंड देते हैं। जब JavaScript फ्रंटएंड बैकएंड API के साथ संचार करते हैं तो यह विसंगति बग का एक सामान्य स्रोत है।

सेकंड में Unix टाइमस्टैम्प वर्तमान में एक 10-अंकीय संख्या है (2023 तक लगभग 1,700,000,000)। मिलीसेकंड टाइमस्टैम्प एक 13-अंकीय संख्या है। कैलकुलेटर अंकों की संख्या के आधार पर पता लगाता है कि आपने कौन सा प्रारूप दर्ज किया है और तदनुसार रूपांतरण करता है।

2038 की समस्या

वे सिस्टम जो Unix टाइमस्टैम्प को एक हस्ताक्षरित 32-bit पूर्णांक के रूप में संग्रहीत करते हैं, वे epoch के बाद केवल 2,147,483,647 सेकंड तक की तारीखों का प्रतिनिधित्व कर सकते हैं — जो 19 जनवरी 2038 को 03:14:07 UTC है। उस क्षण के बाद, एक हस्ताक्षरित 32-bit पूर्णांक एक बड़ी नकारात्मक संख्या में overflow हो जाता है, जो 1901 की तारीख का प्रतिनिधित्व करता है।

इसे कभी-कभी "Y2K38" समस्या या Unix मिलेनियम बग कहा जाता है। आधुनिक 64-bit सिस्टम प्रभावित नहीं हैं, क्योंकि एक हस्ताक्षरित 64-bit पूर्णांक लगभग 292 बिलियन वर्षों के लिए टाइमस्टैम्प का प्रतिनिधित्व कर सकता है। हालांकि, एम्बेडेड सिस्टम, विरासत डेटाबेस और पुराने 32-bit सॉफ्टवेयर अभी भी असुरक्षित हो सकते हैं। दूरसंचार, बैंकिंग और औद्योगिक नियंत्रण प्रणालियों सहित कई उद्योगों के पास इसे संबोधित करने के लिए चल रहे माइग्रेशन प्रयास हैं।

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

भाषा / वातावरणकमांड
JavaScriptMath.floor(Date.now() / 1000)
Pythonimport time; int(time.time())
PHPtime()
Bashdate +%s
SQL (PostgreSQL)EXTRACT(EPOCH FROM NOW())::int
SQL (MySQL)UNIX_TIMESTAMP()
Gotime.Now().Unix()
RustSystemTime::now().duration_since(UNIX_EPOCH).unwrap().as_secs()

व्यावहारिक उपयोग

API विकास: REST API आमतौर पर created_at, updated_at और token expiry फील्ड के लिए Unix टाइमस्टैम्प का उपयोग करते हैं। एक टाइमस्टैम्प timezone-agnostic और स्पष्ट होता है — स्वरूपित तारीख स्ट्रिंग के विपरीत, जो locale और स्वरूपण सम्मेलन पर निर्भर करती हैं।

Token expiry: JWT (JSON Web Tokens) exp (expiry) और iat (issued at) claims के लिए Unix टाइमस्टैम्प का उपयोग करते हैं। एक token expire हो जाता है जब वर्तमान टाइमस्टैम्प exp मान से अधिक हो जाता है। Expiry times की गणना करना — "यह token 24 घंटे में expire होना चाहिए" — वर्तमान टाइमस्टैम्प में 86,400 सेकंड जोड़ने की आवश्यकता है।

Cache TTL: Cache expiry अक्सर Unix टाइमस्टैम्प या अभी से सेकंड की संख्या के रूप में सेट किया जाता है। Cache समस्याओं को debug करने के लिए अक्सर संग्रहीत expiry टाइमस्टैम्प को एक मानव-पठनीय तारीख में परिवर्तित करना आवश्यक होता है।

लॉग विश्लेषण: सर्वर लॉग अक्सर Unix टाइमस्टैम्प शामिल करते हैं। उन्हें पठनीय तारीखों में परिवर्तित करना लॉग प्रविष्टियों को वास्तविक दुनिया की घटनाओं के साथ सहसंबंधित करने का पहला कदम है।

डेटाबेस भंडारण: टाइमस्टैम्प को स्वरूपित स्ट्रिंग के बजाय पूर्णांक के रूप में संग्रहीत करना timezone रूपांतरण बग से बचाता है और sorting, range queries और गणित को सरल बनाता है। "पिछले 7 दिनों के सभी रिकॉर्ड" के लिए एक query WHERE created_at > (NOW_UNIX - 604800) बन जाती है।

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

Unix timestamp क्या है?

Unix timestamp, 1 जनवरी 1970, 00:00:00 UTC (Unix epoch) से अब तक बीते हुए सेकंड्स की संख्या है। यह समय के किसी भी बिंदु को एक ही पूर्णांक (integer) के रूप में दर्शाता है, जिससे इसे स्टोर करना, तुलना करना और गणित करना आसान हो जाता है। यह अधिकांश ऑपरेटिंग सिस्टम, डेटाबेस, APIs और प्रोग्रामिंग भाषाओं में उपयोग होने वाला मानक टाइम फ़ॉर्मेट है।

मैं Unix timestamp को तारीख (date) में कैसे बदलूँ?

टाइमस्टैम्प को कन्वर्टर में डालें और यह UTC तथा आपके लोकल टाइमज़ोन में संबंधित तारीख और समय दिखा देगा। टूल अपने आप पहचान लेता है कि आपने सेकंड्स (10-अंकों का नंबर) डाला है या मिलिसेकंड्स (13-अंकों का नंबर)। आप उलटी दिशा में भी कन्वर्ट कर सकते हैं: एक तारीख और समय चुनें और संबंधित Unix timestamp प्राप्त करें।

Unix time के सेकंड्स और मिलिसेकंड्स में क्या फर्क है?

मूल Unix timestamp सेकंड्स में होता है। अधिकांश सर्वर-साइड सिस्टम — PHP, Python, Go, Bash, SQL डेटाबेस — सेकंड्स का उपयोग करते हैं। JavaScript का Date.now() और new Date().getTime() मिलिसेकंड्स लौटाते हैं (Unix सेकंड्स × 1000)। सेकंड्स वाला टाइमस्टैम्प आमतौर पर 10 अंकों का होता है; मिलिसेकंड्स वाला 13 अंकों का। दोनों को गड़बड़ा देना एक आम बग है, खासकर जब JavaScript frontend बैकएंड को टाइमस्टैम्प भेजता है और बैकएंड सेकंड्स की उम्मीद करता है।

Unix time 1 जनवरी 1970 से ही क्यों शुरू होता है?

1970 के दशक की शुरुआत में Bell Labs में Unix के डेवलपर्स ने एक सुविधाजनक, हालिया शुरुआती तारीख के रूप में इसे चुना था। यह एक गोल (round) और सिस्टम के विकास के समय के करीब तारीख थी — इसके अलावा इसका कोई विशेष महत्व नहीं है। अन्य सिस्टम अलग epochs का उपयोग करते हैं: Windows FILETIME 1 जनवरी 1601 से शुरू होता है; GPS time 6 जनवरी 1980 से; NTP 1 जनवरी 1900 से।

Year 2038 problem क्या है?

जो सिस्टम Unix timestamps को signed 32-bit integer के रूप में स्टोर करते हैं, वे केवल 19 जनवरी 2038 (टाइमस्टैम्प 2,147,483,647) तक की तारीखें दिखा सकते हैं। उसके बाद वैल्यू overflow होकर बड़ा नेगेटिव नंबर बन जाती है, जो 1901 की एक तारीख को दर्शाता है। आधुनिक 64-bit सिस्टम प्रभावित नहीं होते। लेकिन legacy embedded systems, पुराने डेटाबेस और 32-bit सॉफ्टवेयर अभी भी जोखिम में हो सकते हैं और उस तारीख से पहले माइग्रेशन की ज़रूरत पड़ सकती है।

मैं अपनी प्रोग्रामिंग भाषा में मौजूदा (current) Unix timestamp कैसे निकालूँ?

JavaScript: Math.floor(Date.now() / 1000). Python: import time; int(time.time()). PHP: time(). Bash: date +%s. PostgreSQL: EXTRACT(EPOCH FROM NOW())::int. MySQL: UNIX_TIMESTAMP(). Go: time.Now().Unix(). ये सभी Unix epoch से अब तक के सेकंड्स के रूप में वर्तमान समय लौटाते हैं।

संबंधित लेख