Unix टाइमस्टैम्प विस्तार से: प्रारूपों के बीच रूपांतरण
Unix Timestamp कंप्यूटिंग में सबसे मौलिक अवधारणाओं में से एक है, फिर भी कई डेवलपर और डेटा पेशेवर इससे भ्रमित रहते हैं। चाहे आप API प्रतिक्रियाओं को डीबग कर रहे हों, लॉग फ़ाइलों का विश्लेषण कर रहे हों, या शेड्यूलिंग सिस्टम बना रहे हों, Unix Timestamp कैसे काम करता है और प्रारूपों के बीच कैसे रूपांतरित करें, यह समझना एक आवश्यक कौशल है।
Unix टाइमस्टैम्प क्या है?
Unix Timestamp, जिसे epoch time या POSIX time भी कहा जाता है, 1 जनवरी 1970, 00:00:00 UTC से बीते सेकंडों की संख्या है (लीप सेकंड को छोड़कर)। इस संदर्भ बिंदु को Unix Epoch कहा जाता है। टाइमस्टैम्प एकल पूर्णांक के रूप में संग्रहीत होते हैं, जिससे तुलना, छँटाई और समय अंतर की गणना आसान हो जाती है।
उदाहरण के लिए, Unix Timestamp 1700000000 14 नवंबर 2023, 22:13:20 UTC के अनुरूप है। समय को एकल संख्या के रूप में प्रस्तुत करने की सरलता Unix Timestamp को ऑपरेटिंग सिस्टम, डेटाबेस और प्रोग्रामिंग भाषाओं में समय प्रतिनिधित्व के लिए मानक बनाती है।
Unix टाइमस्टैम्प क्यों उपयोग करें
- सार्वभौमिक और असंदिग्ध: टाइमस्टैम्प हमेशा UTC का उपयोग करता है, समय क्षेत्र और डेलाइट सेविंग परिवर्तनों से भ्रम को समाप्त करता है।
- तुलना में आसान: दो टाइमस्टैम्प की तुलना करना सरल पूर्णांक तुलना है, जिससे यह निर्धारित करना आसान हो जाता है कि कौन सी घटना पहले हुई या समय अंतर की गणना करना।
- कॉम्पैक्ट स्टोरेज: एकल 32-बिट या 64-बिट पूर्णांक फ़ॉर्मेटेड दिनांक स्ट्रिंग की तुलना में बहुत कम स्थान लेता है।
- भाषा-स्वतंत्र: प्रत्येक प्रोग्रामिंग भाषा और डेटाबेस सिस्टम मूल रूप से Unix टाइमस्टैम्प को संभाल सकता है।
- अंकगणितीय संचालन: समय जोड़ना और घटाना पूर्णांक मानों पर सेकंड जोड़ने और घटाने जितना सरल है।
सामान्य टाइमस्टैम्प प्रारूप
विभिन्न सिस्टम विभिन्न टाइमस्टैम्प प्रारूपों का उपयोग करते हैं। इन अंतरों को समझने से आपको उनके बीच सटीक रूपांतरण करने में मदद मिलती है।
| प्रारूप | उदाहरण | उपयोगकर्ता |
|---|---|---|
| Unix सेकंड | 1700000000 | Linux, API, डेटाबेस |
| Unix मिलीसेकंड | 1700000000000 | JavaScript, Java |
| Unix माइक्रोसेकंड | 1700000000000000 | Python, Go |
| ISO 8601 | 2023-11-14T22:13:20Z | REST API, JSON |
| RFC 2822 | Tue, 14 Nov 2023 22:13:20 +0000 | ईमेल हेडर, HTTP |
Unix टाइमस्टैम्प को पठनीय दिनांक में बदलें
JavaScript में
JavaScript टाइमस्टैम्प को मिलीसेकंड में प्रस्तुत करता है। सेकंड में Unix Timestamp को JavaScript Date ऑब्जेक्ट में बदलने के लिए, पहले 1000 से गुणा करें। फिर आउटपुट को फ़ॉर्मेट करने के लिए toLocaleString() या toISOString() जैसी विधियों का उपयोग करें।
Python में
Python का datetime मॉड्यूल Unix Timestamp को datetime ऑब्जेक्ट में बदलने के लिए fromtimestamp() विधि प्रदान करता है। Python datetime.fromtimestamp(ts, tz=timezone.utc) के माध्यम से माइक्रोसेकंड सटीकता वाले टाइमस्टैम्प का भी समर्थन करता है।
कमांड लाइन में
Linux और macOS पर, date कमांड टाइमस्टैम्प को रूपांतरित कर सकता है। Unix Timestamp से पठनीय दिनांक प्राप्त करने के लिए Linux पर date -d @1700000000 या macOS पर date -r 1700000000 का उपयोग करें।
ऑनलाइन टूल का उपयोग करना
टाइमस्टैम्प रूपांतरित करने का सबसे तेज़ तरीका ऑनलाइन कनवर्टर का उपयोग करना है। अपना टाइमस्टैम्प पेस्ट करें, और टूल तुरंत संबंधित दिनांक और समय (कई प्रारूपों में) प्रदर्शित करता है। त्वरित रूपांतरण के लिए हमारा मुफ़्त टाइमस्टैम्प कनवर्टर आज़माएँ।
दिनांक को Unix टाइमस्टैम्प में बदलें
रिवर्स रूपांतरण—पठनीय दिनांक को Unix टाइमस्टैम्प में बदलना—उतना ही महत्वपूर्ण है। API को दिनांक भेजते समय, उपयोगकर्ता-चयनित दिनांक संग्रहीत करते समय, या भविष्य की घटनाओं को शेड्यूल करते समय इसकी अक्सर आवश्यकता होती है।
JavaScript में, एक Date ऑब्जेक्ट बनाएँ और मिलीसेकंड टाइमस्टैम्प प्राप्त करने के लिए getTime() कॉल करें, फिर सेकंड प्राप्त करने के लिए 1000 से विभाजित करें। Python में, सीधे Unix Timestamp प्राप्त करने के लिए datetime.timestamp() का उपयोग करें। अधिकांश प्रोग्रामिंग भाषाएँ समान अंतर्निहित विधियाँ प्रदान करती हैं।
2038 समस्या
32-बिट हस्ताक्षरित पूर्णांक का उपयोग करके Unix Timestamp संग्रहीत करने वाले सिस्टम 19 जनवरी 2038, 03:14:07 UTC को ओवरफ़्लो हो जाएँगे। उस बिंदु पर, टाइमस्टैम्प 2147483647 तक पहुँच जाएगा, जो 32-बिट हस्ताक्षरित पूर्णांक का अधिकतम मान है, फिर ऋणात्मक में बदल जाएगा, जिससे दिनांक 1901 के रूप में प्रदर्शित होंगे।
यह समस्या, जिसे Year 2038 Problem या Y2K38 के रूप में जाना जाता है, पुराने सिस्टम और एम्बेडेड डिवाइसों को प्रभावित करती है। समाधान टाइमस्टैम्प संग्रहीत करने के लिए 64-बिट पूर्णांक का उपयोग करना है, जो प्रतिनिधित्व योग्य सीमा को लगभग 292 अरब वर्षों तक विस्तारित करता है। अधिकांश आधुनिक ऑपरेटिंग सिस्टम, डेटाबेस और प्रोग्रामिंग भाषाएँ 64-बिट टाइमस्टैम्प में संक्रमण कर चुकी हैं।
समय क्षेत्रों को संभालना
Unix टाइमस्टैम्प हमेशा UTC का उपयोग करता है, समय क्षेत्र अस्पष्टता को समाप्त करता है। हालाँकि, उपयोगकर्ता को टाइमस्टैम्प प्रदर्शित करने के लिए उनके स्थानीय समय क्षेत्र में रूपांतरण की आवश्यकता होती है। यहाँ मुख्य विचार हैं:
- डेटाबेस में UTC में टाइमस्टैम्प संग्रहीत करें, केवल उपयोगकर्ता को प्रदर्शित करते समय स्थानीय समय में बदलें
- डेलाइट सेविंग को सही ढंग से संभालने के लिए संक्षिप्त नामों (जैसे "EST") के बजाय IANA समय क्षेत्र डेटाबेस पहचानकर्ताओं (जैसे "America/New_York") का उपयोग करें
- API प्रतिक्रियाओं में हमेशा समय क्षेत्र जानकारी शामिल करें, अधिमानतः UTC ऑफ़सेट के साथ ISO 8601 प्रारूप में
- ध्यान दें कि कुछ क्षेत्र DST का पालन नहीं करते, और नियम बार-बार बदलते हैं
सामान्य नुकसान
- JavaScript और अन्य भाषाओं के बीच काम करते समय सेकंड और मिलीसेकंड को भ्रमित करना
- टाइमस्टैम्प प्रदर्शित करते समय समय क्षेत्र पर विचार करना भूल जाना
- 2038 सीमा के निकट सिस्टम पर टाइमस्टैम्प संग्रहीत करने के लिए 32-बिट पूर्णांक का उपयोग करना
- 1 जनवरी 1970 से पहले की तारीखों के लिए ऋणात्मक टाइमस्टैम्प को न संभालना
- डेलाइट सेविंग सीमाओं पर दिनांक अंकगणित करते समय यह मान लेना कि सभी दिनों में 86400 सेकंड होते हैं
Unix टाइमस्टैम्प और पठनीय दिनांक के बीच रूपांतरण चाहिए? हमारा मुफ़्त टाइमस्टैम्प कनवर्टर आज़माएँ।
टाइमस्टैम्प कनवर्टर आज़माएँअक्सर पूछे जाने वाले प्रश्न
Unix एपॉक क्या है?
Unix एपॉक 1 जनवरी 1970 00:00:00 UTC है। यह सभी Unix टाइमस्टैम्प गणनाओं के लिए संदर्भ बिंदु के रूप में कार्य करता है। टाइमस्टैम्प उस क्षण से बीते सेकंडों की संख्या दर्शाता है।
क्या Unix टाइमस्टैम्प समाप्त हो जाएगा?
32-बिट हस्ताक्षरित पूर्णांक Unix Timestamp 19 जनवरी 2038 को ओवरफ़्लो हो जाएगा, जिसे Year 2038 Problem के रूप में जाना जाता है। 64-बिट पूर्णांक का उपयोग करने वाले सिस्टम लगभग 292 अरब वर्षों तक इस समस्या का सामना नहीं करेंगे। अधिकांश आधुनिक सिस्टम 64-बिट टाइमस्टैम्प में संक्रमण कर चुके हैं।
क्या Unix टाइमस्टैम्प समय क्षेत्र से प्रभावित होता है?
नहीं, Unix टाइमस्टैम्प हमेशा UTC का उपयोग करता है और समय क्षेत्र से प्रभावित नहीं होता। वही टाइमस्टैम्प विश्व स्तर पर समान क्षण का प्रतिनिधित्व करता है। समय क्षेत्र रूपांतरण केवल तब होता है जब टाइमस्टैम्प को पठनीय दिनांक के रूप में प्रदर्शित किया जाता है।
टाइमस्टैम्प में सेकंड और मिलीसेकंड में क्या अंतर है?
मानक Unix टाइमस्टैम्प एपॉक के बाद से सेकंड में समय मापते हैं, जबकि JavaScript और कुछ API मिलीसेकंड का उपयोग करते हैं। मिलीसेकंड टाइमस्टैम्प सेकंड टाइमस्टैम्प का 1000 गुना है। उदाहरण के लिए, 1700000000 सेकंड = 1700000000000 मिलीसेकंड।
क्या लीप सेकंड Unix टाइमस्टैम्प को प्रभावित करते हैं?
तकनीकी रूप से, Unix टाइमस्टैम्प लीप सेकंड को अनदेखा करता है। प्रत्येक दिन को ठीक 86400 सेकंड का माना जाता है। इसका मतलब है कि जब लीप सेकंड डाले जाते हैं, तो Unix समय UTC से थोड़ा विचलित हो सकता है, लेकिन व्यवहार में यह शायद ही कभी समस्या पैदा करता है।