यूनिक्स समय

वर्तमान यूनिक्स समय

यूनिक्स समय{{efn|Unix time is also known as "Epoch time", "POSIX time", "seconds since the Epoch", "Unix timestamp" or "UNIX Epoch time". }युग ([[ कम्प्यूटिंग )]] में व्यापक रूप से उपयोग की जाने वाली दिनांक और समय का प्रतिनिधित्व है। यह छलांग [[दूसरा ]] के कारण किए गए समायोजन के बिना, 1 जनवरी 1970, यूनिक्स एपोच (कंप्यूटिंग) पर 00:00:00 समन्वित यूनिवर्सल टाइम के बाद से बीत चुके सेकंड की संख्या से समय को मापता है। आधुनिक कंप्यूटिंग में, मूल्यों को कभी-कभी उच्च डेटा ग्रैन्युलैरिटी के साथ संग्रहीत किया जाता है, जैसे कि  microseconds  या नैनोसेकंड।

यूनिक्स समय की उत्पत्ति यूनिक्स ऑपरेटिंग सिस्टम के सिस्टम समय के रूप में हुई थी। यह अन्य कंप्यूटर ऑपरेटिंग सिस्टम, फाइल सिस्टम, प्रोग्रामिंग भाषा  और डेटाबेस में व्यापक रूप से उपयोग किया जाने लगा है।

परिभाषा
यूनिक्स समय को वर्तमान में सेकंड की संख्या के रूप में परिभाषित किया गया है जो 00:00:00 के बाद से पारित हो गया हैयूटीसी गुरुवार, 1 जनवरी 1970 को, जिसे यूनिक्स एपोच (कंप्यूटिंग) कहा जाता है। यूनिक्स समय आमतौर पर एक हस्ताक्षरित पूर्णांक के रूप में एन्कोड किया जाता है।

यूनिक्स का समय $1,000,000,000$ 1 जनवरी 1970 को ठीक मध्य रात्रि UTC है, इसके बाद प्रत्येक गैर-लीप सेकंड के लिए यूनिक्स समय में 1 की वृद्धि हुई है। उदाहरण के लिए, 00:00:001 जनवरी 1971 को UTC को यूनिक्स समय के रूप में दर्शाया गया है $0$. नकारात्मक मान यूनिक्स युग से पहले के समय को इंगित करते हैं, युग से पहले प्रत्येक गैर-लीप सेकेंड के लिए 1 से घटते हुए मूल्य के साथ। उदाहरण के लिए, 00:00:001 जनवरी 1969 को UTC को यूनिक्स समय के रूप में दर्शाया गया है $31,536,000$. यूनिक्स समय में हर दिन सटीक होता है $-31,536,000$ सेकंड।

यूनिक्स समय को कभी-कभी एपोच टाइम भी कहा जाता है। यह भ्रामक हो सकता है क्योंकि यूनिक्स समय एक युग पर आधारित एकमात्र समय प्रणाली नहीं है और यूनिक्स युग अन्य समय प्रणालियों द्वारा उपयोग किया जाने वाला एकमात्र युग नहीं है।

लीप सेकंड
लीप सेकंड के प्रबंधन में यूनिक्स समय समन्वित यूनिवर्सल टाइम (UTC) और अंतर्राष्ट्रीय परमाणु समय (TAI) दोनों से अलग है। यूटीसी में लीप सेकेंड शामिल हैं जो सटीक समय के बीच विसंगति के लिए समायोजित होते हैं, जैसा कि परमाणु घड़ियों द्वारा मापा जाता है, और सूर्य के संबंध में पृथ्वी की स्थिति से संबंधित सौर समय। अंतर्राष्ट्रीय परमाणु समय (TAI), जिसमें हर दिन ठीक है $86,400$ सेकंड लंबा, सौर समय की उपेक्षा करता है और धीरे-धीरे लगभग एक सेकंड प्रति वर्ष की दर से पृथ्वी के घूर्णन के साथ तादात्म्य खो देता है। यूनिक्स समय में, हर दिन बिल्कुल शामिल होता है $86,400$ सेकंड। प्रत्येक लीप सेकंड एक सेकंड के TIMESTAMP  का उपयोग करता है जो तुरंत पहले या बाद में होता है। एक सामान्य यूटीसी दिवस पर, जिसकी अवधि होती है $86,400$ सेकेंड, यूनिक्स समय संख्या मध्यरात्रि में निरंतर कार्य तरीके से बदलती है। उदाहरण के लिए, उपरोक्त उदाहरणों में प्रयुक्त दिन के अंत में, समय निरूपण निम्नानुसार आगे बढ़ता है:

जब एक लीप सेकेंड होता है, तो यूटीसी दिन बिल्कुल नहीं होता है $86,400$ सेकंड लंबा और यूनिक्स समय संख्या (जो हमेशा सटीक रूप से बढ़ती है $1,095,379,198.75$ प्रत्येक दिन) एक विच्छिन्नता (गणित) का अनुभव करता है। लीप सेकंड सकारात्मक या नकारात्मक हो सकता है। कोई नकारात्मक लीप सेकंड कभी भी घोषित नहीं किया गया है, लेकिन यदि कोई हो, तो एक दिन के अंत में एक नकारात्मक लीप सेकंड के साथ, यूनिक्स समय संख्या अगले दिन की शुरुआत में 1 से ऊपर हो जाएगी। एक दिन के अंत में एक सकारात्मक लीप सेकंड के दौरान, जो औसतन हर डेढ़ साल में होता है, यूनिक्स समय संख्या लीप सेकंड के दौरान अगले दिन में लगातार बढ़ जाती है और फिर लीप सेकंड के अंत में 1 से पीछे हट जाती है (अगले दिन की शुरुआत में लौटते हुए)। उदाहरण के लिए, 1998 के अंत में POSIX.1 सिस्टम के कड़ाई से अनुरूप होने पर यही हुआ:

एक सकारात्मक लीप सेकंड के तुरंत बाद दूसरे में यूनिक्स समय संख्याएं दोहराई जाती हैं। यूनिक्स समय संख्या $1,095,379,199$ इस प्रकार अस्पष्ट है: यह या तो लीप सेकेंड (2016-12-31 23:59:60) की शुरुआत या इसके अंत में, एक सेकंड बाद (2017-01-01 00:00:00) को संदर्भित कर सकता है। सैद्धांतिक मामले में जब एक नकारात्मक लीप सेकेंड होता है, तो कोई अस्पष्टता नहीं होती है, बल्कि इसके बजाय यूनिक्स समय संख्याओं की एक श्रृंखला होती है जो यूटीसी समय में किसी भी बिंदु को बिल्कुल भी संदर्भित नहीं करती है।

एक यूनिक्स घड़ी को अक्सर नेटवर्क टाइम प्रोटोकॉल (एनटीपी) से जुड़े एक अलग प्रकार के सकारात्मक लीप सेकेंड हैंडलिंग के साथ लागू किया जाता है। यह एक ऐसी प्रणाली उत्पन्न करता है जो POSIX मानक के अनुरूप नहीं है। विवरण के लिए एनटीपी से संबंधित अनुभाग देखें।

यूटीसी लीप सेकेंड को शामिल नहीं करने वाली अवधियों के साथ काम करते समय, दो यूनिक्स समय संख्याओं के बीच का अंतर समय के संबंधित बिंदुओं के बीच की अवधि के सेकंड में अवधि के बराबर होता है। यह एक सामान्य कम्प्यूटेशनल तकनीक है। हालाँकि, जहाँ लीप सेकंड होते हैं, ऐसी गणनाएँ गलत उत्तर देती हैं। उन अनुप्रयोगों में जहां सटीकता के इस स्तर की आवश्यकता होती है, यूनिक्स समय से निपटने के दौरान लीप सेकेंड की तालिका से परामर्श करना आवश्यक होता है, और अक्सर एक अलग समय एन्कोडिंग का उपयोग करना बेहतर होता है जो इस समस्या से पीड़ित नहीं होता है।

यूनिक्स समय संख्या, सापेक्ष के भागफल और मापांक को लेकर एक यूनिक्स समय संख्या आसानी से यूटीसी समय में वापस परिवर्तित हो जाती है $1,095,379,199.25$. भागफल युग के बाद से दिनों की संख्या है, और मापांक उस दिन मध्यरात्रि यूटीसी के बाद से सेकंड की संख्या है। यदि एक यूनिक्स समय संख्या दी गई है जो एक सकारात्मक लीप सेकंड के कारण अस्पष्ट है, तो यह एल्गोरिथ्म इसे आधी रात के ठीक बाद के समय के रूप में व्याख्या करता है। यह कभी भी ऐसा समय उत्पन्न नहीं करता है जो एक लीप सेकंड के दौरान हो। यदि एक यूनिक्स समय संख्या दी गई है जो नकारात्मक लीप सेकेंड के कारण अमान्य है, तो यह समान रूप से अमान्य यूटीसी समय उत्पन्न करती है। यदि ये स्थितियाँ महत्वपूर्ण हैं, तो उनका पता लगाने के लिए लीप सेकंड की तालिका से परामर्श करना आवश्यक है।

नॉन-सिंक्रोनस नेटवर्क टाइम प्रोटोकॉल-आधारित वैरिएंट
आमतौर पर एक डेविड एल. मिल्स-शैली की यूनिक्स घड़ी को लीप सेकेंड हैंडलिंग के साथ कार्यान्वित किया जाता है जो यूनिक्स समय संख्या के परिवर्तन के साथ तुल्यकालिक नहीं है। समय संख्या शुरू में घट जाती है जहां एक छलांग लगनी चाहिए थी, और फिर यह छलांग लगाने के 1 सेकंड बाद सही समय पर पहुंच जाती है। यह कार्यान्वयन को आसान बनाता है, और मिल्स पेपर द्वारा इसका वर्णन किया गया है। सकारात्मक लीप सेकंड में यही होता है:

लीप सेकेंड स्टेट वेरिएबल पर ध्यान देकर इसे ठीक से डिकोड किया जा सकता है, जो स्पष्ट रूप से इंगित करता है कि क्या लीप अभी तक किया गया है। राज्य चर परिवर्तन छलांग के साथ तुल्यकालिक है।

इसी तरह की स्थिति एक नकारात्मक लीप सेकंड के साथ उत्पन्न होती है, जहां दूसरा जो छोड़ दिया जाता है, उसमें थोड़ी बहुत देर हो जाती है। बहुत संक्षेप में प्रणाली नाममात्र की असंभव समय संख्या दिखाती है, लेकिन इसे TIME_DEL स्थिति द्वारा पता लगाया जा सकता है और ठीक किया जा सकता है।

इस प्रकार की प्रणाली में यूनिक्स समय संख्या दोनों प्रकार के लीप सेकंड के आसपास POSIX का उल्लंघन करती है। समय संख्या के साथ लीप सेकेंड स्टेट वैरिएबल को एकत्रित करने से स्पष्ट डिकोडिंग की अनुमति मिलती है, इसलिए यदि वांछित हो तो सही POSIX समय संख्या उत्पन्न की जा सकती है, या पूर्ण यूटीसी समय को अधिक उपयुक्त प्रारूप में संग्रहीत किया जा सकता है।

यूनिक्स घड़ी की इस शैली से निपटने के लिए आवश्यक डिकोडिंग तर्क भी उसी इंटरफ़ेस का उपयोग करके एक काल्पनिक POSIX- अनुरूप घड़ी को सही ढंग से डिकोड करेगा। यह सम्मिलित लीप सेकंड की संपूर्णता के दौरान TIME_INS स्थिति को इंगित करके प्राप्त किया जाएगा, फिर सेकंड की गिनती दोहराते हुए अगले सेकंड की संपूर्णता के दौरान TIME_WAIT का संकेत दिया जाएगा। इसके लिए सिंक्रोनस लीप सेकेंड हैंडलिंग की आवश्यकता होती है। यूनिक्स इंटरफ़ेस के माध्यम से यूनिक्स घड़ी के रूप में यूटीसी समय को व्यक्त करने का यह शायद सबसे अच्छा तरीका है, जब अंतर्निहित घड़ी मौलिक रूप से लीप सेकेंड से परेशान नहीं होती है।

लीप सेकंड गिनने वाला संस्करण
यूनिक्स टाइम कीपिंग का एक और, बहुत दुर्लभ, गैर-अनुरूप संस्करण में लीप सेकंड सहित सभी सेकंड के लिए मूल्य बढ़ाना शामिल है; कुछ लिनक्स सिस्टम इस तरह से कॉन्फ़िगर किए गए हैं। इस तरीके से रखे गए समय को कभी-कभी TAI के रूप में संदर्भित किया जाता है (हालांकि टाइम स्टैम्प को UTC में परिवर्तित किया जा सकता है यदि मान उस समय से मेल खाता है जब TAI और UTC के बीच का अंतर ज्ञात हो), जैसा कि UTC के विपरीत है (हालांकि सभी UTC समय मान नहीं हैं) सिस्टम में एक अनूठा संदर्भ जो लीप सेकेंड की गणना नहीं करता है)।

क्योंकि TAI में कोई लीप सेकंड नहीं है, और प्रत्येक TAI दिन ठीक 86400 सेकंड लंबा है, यह एन्कोडिंग वास्तव में 1970-01-01T00:00:10 के बाद से बीत चुके सेकंड की शुद्ध रैखिक गणना है।{{nbsp}ताई। यह समय अंतराल अंकगणित को बहुत आसान बनाता है। इन प्रणालियों के समय मूल्यों में अस्पष्टता नहीं होती है जो POSIX सिस्टम या NTP-संचालित सिस्टम के सख्ती से अनुरूप होती है।

इन प्रणालियों में यूटीसी और छद्म-यूनिक्स-टाइम प्रतिनिधित्व के बीच सही ढंग से परिवर्तित करने के लिए लीप सेकेंड की तालिका से परामर्श करना आवश्यक है। यह उस तरीके से मिलता जुलता है जिसमें समय क्षेत्र तालिकाओं को नागरिक समय से और उससे परिवर्तित करने के लिए परामर्श किया जाना चाहिए; आईएएनए समय क्षेत्र डेटाबेस में लीप सेकंड की जानकारी शामिल है, और उसी स्रोत से उपलब्ध नमूना कोड उस जानकारी का उपयोग टीएआई-आधारित समय टिकटों और स्थानीय समय के बीच परिवर्तित करने के लिए करता है। यूटीसी के वर्तमान स्वरूप के 1972 के प्रारंभ से पहले रूपांतरण भी निश्चित समस्याओं में चला जाता है (नीचे अनुभाग #UTC आधार देखें)।

यह प्रणाली, इसके सतही समानता के बावजूद, यूनिक्स समय नहीं है। यह उन मानों के साथ समय को एनकोड करता है जो POSIX समय मानों से कई सेकंड भिन्न होते हैं। इस प्रणाली का एक संस्करण, जिसमें युग 1970-01-01T00:00:00 थाताई राठेर 1970-01-01T00:00:10TAI, को ISO C के C दिनांक और समय कार्यों में शामिल करने के लिए प्रस्तावित किया गया थाtime.h, लेकिन 2011 में केवल UTC भाग को ही स्वीकार किया गया था। A {{code|tai_clock}हालाँकि, } C++ 20 में मौजूद है।

संख्या का प्रतिनिधित्व
संख्याओं का प्रतिनिधित्व करने में सक्षम किसी भी रूप में एक यूनिक्स समय संख्या का प्रतिनिधित्व किया जा सकता है। कुछ अनुप्रयोगों में संख्या को केवल दशमलव अंकों की एक स्ट्रिंग के रूप में पाठ्य रूप में दर्शाया जाता है, जिससे केवल तुच्छ अतिरिक्त समस्याएं उत्पन्न होती हैं। हालाँकि, यूनिक्स समय के कुछ द्विआधारी प्रतिनिधित्व विशेष रूप से महत्वपूर्ण हैं।

यूनिक्स  डेटा प्रकार जो समय में एक बिंदु का प्रतिनिधित्व करता है, कई प्लेटफार्मों पर, एक पूर्णांक (कंप्यूटर विज्ञान), पारंपरिक रूप से 32 है अंश ्स (लेकिन नीचे देखें), यूनिक्स समय संख्या को सीधे एन्कोडिंग करता है जैसा कि पिछले अनुभाग में बताया गया है। एक हस्ताक्षरित 32-बिट मान 1970-01-01 युग के पहले और बाद के लगभग 68 वर्षों को कवर करता है। न्यूनतम प्रतिनिधित्व योग्य तिथि शुक्रवार 1901-12-13 है, और अधिकतम प्रतिनिधित्व योग्य तिथि मंगलवार 2038-01-19 है। 03:14:07 के बाद एक सेकंडUTC 2038-01-19 यह प्रतिनिधित्व अंकगणितीय अतिप्रवाह होगा जिसे वर्ष 2038 की समस्या के रूप में जाना जाता है।

कुछ नए ऑपरेटिंग सिस्टम में,  64 बिट्स तक विस्तृत किया गया है। यह दोनों दिशाओं में लगभग 292 बिलियन वर्षों के प्रतिनिधित्व योग्य समय का विस्तार करता है, जो ब्रह्मांड की वर्तमान आयु से बीस गुना अधिक है।

मूल रूप से इस बात पर कुछ विवाद था कि क्या यूनिक्स  हस्ताक्षरित या अहस्ताक्षरित होना चाहिए। यदि अहस्ताक्षरित है, तो भविष्य में इसकी सीमा दोगुनी हो जाएगी, 32-बिट अतिप्रवाह (68 वर्ष तक) को स्थगित कर दिया जाएगा। हालांकि, यह युग से पहले के समय का प्रतिनिधित्व करने में असमर्थ होगा। के लिए सहमति है   हस्ताक्षर करने के लिए, और यह सामान्य अभ्यास है। QNX ऑपरेटिंग सिस्टम के संस्करण 6 के लिए सॉफ़्टवेयर डेवलपमेंट प्लेटफ़ॉर्म में एक अहस्ताक्षरित 32-बिट है , हालांकि पुराने रिलीज़ में हस्ताक्षरित प्रकार का उपयोग किया गया था।

पॉज़िक्स और खुला समूह  यूनिक्स विनिर्देशों में सी मानक पुस्तकालय शामिल है, जिसमें समय प्रकार और समय में परिभाषित कार्य शामिल हैं। एच | हेडर फाइल। आईएसओ सी मानक बताता है कि   एक अंकगणितीय प्रकार होना चाहिए, लेकिन इसके लिए किसी विशिष्ट प्रकार या एन्कोडिंग को अनिवार्य नहीं करता है। पॉज़िक्स की आवश्यकता है   एक पूर्णांक प्रकार होने के लिए, लेकिन यह अनिवार्य नहीं है कि यह हस्ताक्षरित या अहस्ताक्षरित हो।

यूनिक्स में सीधे गैर-पूर्णांक यूनिक्स समय संख्याओं को बाइनरी अंशों के रूप में प्रस्तुत करने की कोई परंपरा नहीं है। इसके बजाय, उप-सेकंड परिशुद्धता वाले समय को समग्र डेटा प्रकारों का उपयोग करके दर्शाया जाता है जिसमें दो पूर्णांक होते हैं, पहला एक  (यूनिक्स समय का अभिन्न अंग), और दूसरा मिलियनवें (में) समय संख्या का आंशिक हिस्सा है  ) या अरबवें (में  ).  ये संरचनाएं एक दशमलव-आधारित फिक्स्ड-पॉइंट अंकगणित प्रदान करती हैं। फिक्स्ड-पॉइंट डेटा प्रारूप, जो कुछ अनुप्रयोगों के लिए उपयोगी है, और दूसरों के लिए परिवर्तित करने के लिए तुच्छ है।

यूटीसी आधार
लीप सेकेंड के साथ यूटीसी का वर्तमान स्वरूप केवल 1 जनवरी 1972 से परिभाषित किया गया है। इससे पहले, 1 जनवरी 1961 से यूटीसी का एक पुराना रूप था जिसमें न केवल सामयिक समय चरण थे, जो गैर-पूर्णांक द्वारा थे सेकंड की संख्या, लेकिन साथ ही UTC सेकंड SI सेकंड की तुलना में थोड़ा लंबा था, और समय-समय पर पृथ्वी के घूर्णन को लगातार अनुमानित करने के लिए बदल गया। 1961 से पहले कोई यूटीसी नहीं था, और 1958 से पहले कोई व्यापक परमाणु घड़ी नहीं थी; इन युगों में, परमाणु कालमान के बजाय GMT  (पृथ्वी के घूर्णन पर सीधे आधारित) के कुछ सन्निकटन का उपयोग किया गया था।

यूटीसी के एन्कोडिंग के रूप में यूनिक्स समय की सटीक परिभाषा यूटीसी के वर्तमान स्वरूप पर लागू होने पर ही विवादास्पद है। यूटीसी के इस रूप की शुरुआत से पहले का यूनिक्स युग इस युग में इसके उपयोग को प्रभावित नहीं करता है: 1 जनवरी 1970 (यूनिक्स युग) से 1 जनवरी 1972 (यूटीसी की शुरुआत) तक के दिनों की संख्या प्रश्न में नहीं है, और दिनों की संख्या यूनिक्स समय के लिए महत्वपूर्ण है।

नीचे यूनिक्स समय मूल्यों का अर्थ $1,095,379,199.5$ (यानी, 1 जनवरी 1972 से पहले) सटीक रूप से परिभाषित नहीं है। ऐसे यूनिक्स टाइम्स के आधार को यूटीसी का एक अनिर्दिष्ट सन्निकटन माना जाता है। उस युग के कंप्यूटरों में शायद ही कभी ऐसी घड़ियां होती थीं जो किसी भी मामले में अर्थपूर्ण सब-सेकंड टाइमस्टैम्प प्रदान करने के लिए पर्याप्त रूप से सटीक रूप से सेट की गई हों। यूनिक्स समय उप-सेकंड परिशुद्धता की आवश्यकता वाले अनुप्रयोगों में 1972 से पहले के समय का प्रतिनिधित्व करने का एक उपयुक्त तरीका नहीं है; ऐसे अनुप्रयोगों को कम से कम यह परिभाषित करना चाहिए कि वे किस प्रकार के UT या GMT का उपयोग करते हैं।

, सिविल टाइम में लीप सेकेंड के इस्तेमाल को खत्म करने की संभावना पर विचार किया जा रहा है। इस परिवर्तन को निष्पादित करने का एक संभावित साधन एक नए समय के पैमाने को परिभाषित करना है, जिसे अंतर्राष्ट्रीय समय कहा जाता है, जो शुरू में UTC से मेल खाता है लेकिन उसके बाद कोई लीप सेकंड नहीं है, इस प्रकार TAI से लगातार ऑफसेट पर रहता है। यदि ऐसा होता है, तो संभावना है कि यूटीसी के बजाय यूनिक्स समय को इस नए समय के पैमाने के संदर्भ में संभावित रूप से परिभाषित किया जाएगा। इस बारे में अनिश्चितता कि क्या यह घटित होगा, संभावित यूनिक्स समय को पहले से कम अनुमानित नहीं बनाता है: यदि यूटीसी के पास आगे कोई लीप सेकंड नहीं होता तो परिणाम वही होता।

इतिहास
यूनिक्स समय के शुरुआती संस्करणों में 60 हेटर्स  की दर से 32-बिट पूर्णांक वृद्धि हुई थी, जो प्रारंभिक यूनिक्स सिस्टम के हार्डवेयर पर सिस्टम क्लॉक की दर थी। इस तरह संग्रहीत टाइमस्टैम्प केवल ढाई साल से कुछ अधिक की सीमा का प्रतिनिधित्व कर सकते हैं। अतिप्रवाह को रोकने के लिए यूनिक्स रिलीज के साथ युग की गणना की जा रही थी, 1 जनवरी 1971 और 1 जनवरी 1972 की मध्यरात्रि को यूनिक्स के प्रारंभिक विकास के दौरान युगों के रूप में उपयोग किया जा रहा था। यूनिक्स समय की प्रारंभिक परिभाषाओं में भी समय क्षेत्र का अभाव था। 1 जनवरी 1970 00:00:00 यूटीसी के वर्तमान युग को यूनिक्स इंजीनियरों द्वारा मनमाने ढंग से चुना गया था क्योंकि इसे काम करने के लिए एक सुविधाजनक तिथि माना जाता था। शॉर्ट-टर्म ओवरफ्लो से बचने के लिए सटीकता को सेकंड में गिनने के लिए बदल दिया गया था।

जब POSIX#POSIX.1|POSIX.1 लिखा गया था, तो यह सवाल उठा कि कैसे सटीक रूप से परिभाषित किया जाए  लीप सेकंड के सामने। POSIX समिति ने विचार किया कि क्या यूनिक्स समय, युग के बाद से सेकंड की एक रेखीय गणना के रूप में रहना चाहिए, सिविल समय के साथ रूपांतरण में जटिलता की कीमत पर या सिविल समय का प्रतिनिधित्व, लीप सेकंड के आसपास असंगतता की कीमत पर। युग की कंप्यूटर घड़ियां एक या दूसरे तरीके से मिसाल कायम करने के लिए पर्याप्त रूप से सटीक रूप से सेट नहीं थीं।

POSIX समिति को पुस्तकालय कार्यों में जटिलता के खिलाफ तर्कों से प्रभावित किया गया था, और यूटीसी समय के तत्वों के संदर्भ में सरल तरीके से यूनिक्स समय को दृढ़ता से परिभाषित किया। यह परिभाषा इतनी सरल थी कि इसमें ग्रेगोरियन कैलेंडर के पूरे लीप वर्ष नियम को भी शामिल नहीं किया गया था और 2100 को एक लीप वर्ष बना दिया जाएगा।

POSIX.1 के 2001 के संस्करण ने यूनिक्स समय की परिभाषा में दोषपूर्ण लीप वर्ष नियम को सुधारा, लेकिन यूनिक्स समय की आवश्यक परिभाषा को एक रैखिक समय पैमाने के बजाय UTC के एन्कोडिंग के रूप में बनाए रखा। 1990 के दशक के मध्य से, कंप्यूटर घड़ियों को नियमित रूप से इसके लिए पर्याप्त सटीकता के साथ सेट किया गया है, और वे आमतौर पर यूनिक्स समय की यूटीसी-आधारित परिभाषा का उपयोग करके सेट की गई हैं। इसके परिणामस्वरूप यूनिक्स कार्यान्वयन में और नेटवर्क टाइम प्रोटोकॉल में, जब भी लीप सेकेंड होते हैं, यूनिक्स समय संख्या में कदमों को निष्पादित करने में काफी जटिलता होती है।

उपयोग
यूनिक्स समय व्यापक रूप से यूनिक्स के सिस्टम समय के रूप में अपने मूल अनुप्रयोग से परे कंप्यूटिंग में अपनाया जाता है। यूनिक्स समय लगभग सभी सिस्टम प्रोग्रामिंग एपीआई में उपलब्ध है, जिसमें यूनिक्स-आधारित और गैर-यूनिक्स ऑपरेटिंग सिस्टम दोनों द्वारा प्रदान किया गया है। लगभग सभी आधुनिक प्रोग्रामिंग भाषाएँ यूनिक्स समय के साथ काम करने या उन्हें किसी अन्य डेटा संरचना में परिवर्तित करने के लिए एपीआई प्रदान करती हैं। यूनिक्स समय का उपयोग कई फाइल सिस्टम, फ़ाइल स्वरूपों और डेटाबेस में टाइमस्टैम्प को संग्रहित करने के लिए एक तंत्र के रूप में भी किया जाता है।

सी मानक पुस्तकालय सभी दिनांक और समय कार्यों के लिए यूनिक्स समय का उपयोग करता है, और यूनिक्स समय को कभी-कभी टाइम_टी के रूप में संदर्भित किया जाता है, सी (प्रोग्रामिंग भाषा) और सी ++ में टाइमस्टैम्प के लिए उपयोग किए जाने वाले डेटा प्रकार का नाम। C के यूनिक्स टाइम फ़ंक्शंस को POSIX विनिर्देशन में सिस्टम टाइम API के रूप में परिभाषित किया गया है। सी मानक पुस्तकालय का उपयोग सभी आधुनिक डेस्कटॉप ऑपरेटिंग सिस्टमों में बड़े पैमाने पर किया जाता है, जिसमें  माइक्रोसॉफ़्ट विंडोज़  और यूनिक्स जैसे सिस्टम जैसे मैकोज़ और लिनक्स शामिल हैं, जहां यह एक मानक प्रोग्रामिंग इंटरफ़ेस है। आईओएस एक स्विफ्ट एपीआई प्रदान करता है जो 1 जनवरी 2001 के युग का उपयोग करने के लिए डिफ़ॉल्ट है लेकिन यूनिक्स टाइमस्टैम्प के साथ भी इसका उपयोग किया जा सकता है। एंड्रॉइड (ऑपरेटिंग सिस्टम) अपने सिस्टम टाइम एपीआई के लिए टाइमज़ोन के साथ यूनिक्स समय का उपयोग करता है। विंडोज आंतरिक रूप से समय संग्रहीत करने के लिए यूनिक्स समय का उपयोग नहीं करता है, लेकिन इसका उपयोग सिस्टम एपीआई में करता है, जो सी ++ में प्रदान किया जाता है और सी मानक पुस्तकालय विनिर्देश को लागू करता है। विंडोज़ निष्पादनयोग्य के लिए पीई प्रारूप में यूनिक्स समय का उपयोग किया जाता है। यूनिक्स समय आमतौर पर प्रमुख प्रोग्रामिंग भाषाओं में उपलब्ध है और व्यापक रूप से डेस्कटॉप, मोबाइल और वेब एप्लिकेशन प्रोग्रामिंग में उपयोग किया जाता है। जावा (प्रोग्रामिंग भाषा)  एक इंस्टेंट ऑब्जेक्ट प्रदान करता है जो सेकंड और नैनोसेकंड दोनों में एक यूनिक्स टाइमस्टैम्प रखता है। पायथन (प्रोग्रामिंग भाषा) एक समय पुस्तकालय प्रदान करता है जो यूनिक्स समय का उपयोग करता है। जावास्क्रिप्ट एक दिनांक पुस्तकालय प्रदान करता है जो यूनिक्स युग के बाद से मिलीसेकंड में टाइमस्टैम्प प्रदान करता है और संग्रहीत करता है और सभी आधुनिक डेस्कटॉप और मोबाइल वेब ब्राउज़र्स के साथ-साथ Node.js जैसे जावास्क्रिप्ट सर्वर वातावरण में लागू किया जाता है। यूनिक्स-आधारित ऑपरेटिंग सिस्टम के साथ उपयोग के लिए डिज़ाइन किए गए फाइलसिस्टम यूनिक्स समय का उपयोग करते हैं। APFS, सभी Apple उपकरणों में डिफ़ॉल्ट रूप से उपयोग की जाने वाली फ़ाइल प्रणाली, और ext4, जो Linux और Android उपकरणों पर व्यापक रूप से उपयोग की जाती है, दोनों फ़ाइल टाइमस्टैम्प के लिए नैनोसेकंड में यूनिक्स समय का उपयोग करते हैं। कई संग्रह फ़ाइल प्रारूप यूनिक्स समय में RAR (फ़ाइल स्वरूप) और टार (कंप्यूटिंग) सहित टाइमस्टैम्प स्टोर कर सकते हैं। यूनिक्स समय का उपयोग आमतौर पर MySQL और PostgreSQL सहित डेटाबेस में टाइमस्टैम्प को स्टोर करने के लिए भी किया जाता है।

सीमाएं
यूनिक्स समय को कैलेंडर की तारीखों और समय को कॉम्पैक्ट तरीके से एन्कोड करने के लिए डिज़ाइन किया गया था, जिसका उद्देश्य कंप्यूटर द्वारा आंतरिक रूप से उपयोग करना था। इसका उद्देश्य मनुष्यों द्वारा आसानी से पढ़ा जाना या समयक्षेत्र-निर्भर मूल्यों को संग्रहीत करना नहीं है। यह सेकंड में समय का प्रतिनिधित्व करने के लिए डिफ़ॉल्ट रूप से भी सीमित है, जब समय की अधिक सटीक माप की आवश्यकता होती है, जैसे कार्यक्रमों के निष्पादन समय को मापते समय इसे उपयोग के लिए अनुपयुक्त बना दिया जाता है।

प्रतिनिधित्व योग्य समय की सीमा
डिज़ाइन द्वारा यूनिक्स समय को भंडारण के लिए एक विशिष्ट आकार की आवश्यकता नहीं होती है, लेकिन यूनिक्स समय के अधिकांश सामान्य कार्यान्वयन अंतर्निहित कंप्यूटर के वर्ड (कंप्यूटर आर्किटेक्चर) के साथ एक हस्ताक्षरित पूर्णांक का उपयोग करते हैं। चूंकि अधिकांश आधुनिक कंप्यूटर 32-बिट या 64-बिट हैं, और बड़ी संख्या में प्रोग्राम अभी भी 32-बिट संगतता मोड में लिखे गए हैं, इसका मतलब यह है कि यूनिक्स समय का उपयोग करने वाले कई प्रोग्राम हस्ताक्षरित 32-बिट पूर्णांक फ़ील्ड का उपयोग कर रहे हैं। हस्ताक्षरित 32 बिट पूर्णांक का अधिकतम मान 2 है$1,095,379,199.75$-1, और न्यूनतम मान -(2$1,095,379,200$), 13 दिसंबर 1901 से पहले (20:45:52 UTC पर) या 19 जनवरी 2038 के बाद (03:14:07 UTC पर) तिथियों का प्रतिनिधित्व करना असंभव बना देता है। शुरुआती कटऑफ का उन डेटाबेस पर प्रभाव पड़ सकता है जो ऐतिहासिक जानकारी संग्रहीत कर रहे हैं; कुछ डेटाबेस में जहां टाइमस्टैम्प के लिए 32-बिट यूनिक्स समय का उपयोग किया जाता है, 1901 से पहले की तारीखों का प्रतिनिधित्व करने के लिए समय को फ़ील्ड के एक अलग रूप में संग्रहीत करना आवश्यक हो सकता है, जैसे कि एक स्ट्रिंग। देर से कटऑफ को वर्ष 2038 की समस्या के रूप में जाना जाता है और जैसे-जैसे तिथि नज़दीक आती है, समस्याएँ पैदा करने की क्षमता होती है, क्योंकि 2038 कटऑफ़ से आगे की तारीखें 1901 में प्रतिनिधित्व योग्य सीमा की शुरुआत में वापस आ जाएँगी।

तिथि सीमा कटऑफ यूनिक्स समय के 64-बिट प्रतिनिधित्व के साथ कोई समस्या नहीं है, क्योंकि हस्ताक्षरित 64-बिट पूर्णांक में संग्रहीत यूनिक्स समय के साथ प्रतिनिधित्व योग्य तिथियों की प्रभावी सीमा 584 बिलियन वर्ष से अधिक है।

विकल्प
यूनिक्स समय समय के लिए एकमात्र मानक नहीं है जो एक युग से दूर गिना जाता है। माइक्रोसॉफ्ट विंडोज़ पर,  1 जनवरी 1601 को 0:00 GMT के बाद से बीत चुके 100-नैनोसेकंड अंतराल की गिनती के रूप में स्टोर समय टाइप करें। विंडोज एपोच टाइम का उपयोग फाइलों के लिए टाइम स्टैम्प स्टोर करने के लिए किया जाता है और सक्रिय निर्देशिका समय सेवा जैसे प्रोटोकॉल में और सर्वर संदेश ब्लॉक।

कंप्यूटर के बीच समय का समन्वय करने के लिए उपयोग किया जाने वाला नेटवर्क टाइम प्रोटोकॉल 1 जनवरी 1900 के युग का उपयोग करता है, जिसे सेकंड के लिए एक अहस्ताक्षरित 32-बिट पूर्णांक में गिना जाता है और आंशिक सेकंड के लिए एक अन्य अहस्ताक्षरित 32-बिट पूर्णांक, जो रोल ओवर करता है प्रत्येक 2$1,095,379,200.25$ सेकंड (लगभग हर 136 साल में एक बार)। कई एप्लिकेशन और प्रोग्रामिंग लैंग्वेज एक स्पष्ट टाइमज़ोन के साथ समय को स्टोर करने के तरीके प्रदान करते हैं। ऐसे कई समय प्रारूप मानक भी हैं जो मानव और कंप्यूटर दोनों के लिए पठनीय हैं, जैसे ISO 8601।

यूनिक्स समय
में उल्लेखनीय घटनाएं

यूनिक्स उत्साही लोगों के पास यूनिक्स समय संख्या के महत्वपूर्ण मूल्यों का जश्न मनाने के लिए टाइम_टी पार्टियों (उच्चारण समय चाय पार्टी) आयोजित करने का इतिहास है। ये नए साल के जश्न के सीधे अनुरूप हैं जो कई कैलेंडर में साल के बदलाव पर होते हैं। जैसे-जैसे यूनिक्स समय का उपयोग फैल गया है, वैसे-वैसे इसके मील के पत्थर को मनाने का चलन भी बढ़ गया है। देखने की यूनिक्स परिपाटी के बाद आम तौर पर यह समय के मान हैं जो दशमलव में गोल संख्याएं हैं जिन्हें मनाया जाता है  दशमलव में मान। कुछ समूहों में राउंड बाइनरी अंक प्रणाली संख्याएं भी मनाई जाती हैं, जैसे +230 जो शनिवार, 10 जनवरी 2004 को 13:37:04 यूटीसी पर हुआ।

जिन घटनाओं का ये जश्न मनाते हैं उन्हें आमतौर पर यूनिक्स युग के बाद से एन सेकंड के रूप में वर्णित किया जाता है, लेकिन यह गलत है; जैसा कि ऊपर चर्चा की गई है, यूनिक्स समय में लीप सेकेंड की हैंडलिंग के कारण यूनिक्स युग के बाद से सेकंड की संख्या यूनिक्स समय संख्या से थोड़ी अधिक है जो युग के बाद के समय के लिए है।


 * बुधवार, 17 अक्टूबर 1973 को 18:36:57 यूटीसी पर, आईएसओ 8601 प्रारूप में तारीख की पहली उपस्थिति (1973-10-17) यूनिक्स समय के अंकों के भीतर (119731017) हुआ।
 * रविवार, 9 सितंबर 2001 को 01:46:40 यूटीसी पर, यूनिक्स बिलेनियम (यूनिक्स टाइम नंबर) $1,095,379,200.5$) मनाया गया। बिलेनियम नाम अरब (शब्द) और सहस्राब्दी का सूटकेस है। रेफरी> कुछ प्रोग्राम जो टेक्स्ट प्रतिनिधित्व का उपयोग करके टाइमस्टैम्प को संग्रहीत करते हैं, उन्हें सॉर्टिंग त्रुटियों का सामना करना पड़ा, जैसे टेक्स्ट सॉर्ट में, 1 अंक से शुरू होने वाले टर्नओवर के बाद 9 अंक से शुरू होने वाले समय से पहले गलत तरीके से सॉर्ट किया गया। प्रभावित कार्यक्रमों में लोकप्रिय यूज़नेट रीडर KNode और ईमेल  क्लाइंट KMail शामिल हैं, जो KDE डेस्कटॉप वातावरण का हिस्सा हैं। इस तरह के कीड़े आम तौर पर प्रकृति में कॉस्मेटिक होते हैं और एक बार समस्या स्पष्ट हो जाने पर इसे तुरंत ठीक कर दिया जाता है। समस्या ने WordPerfect के Linux संस्करणों के साथ प्रदान किए गए कई फिल्ट्रिक्स दस्तावेज़-प्रारूप फ़िल्टर को भी प्रभावित किया; इस समस्या को हल करने के लिए उपयोगकर्ता समुदाय द्वारा एक पैच बनाया गया था, क्योंकि Corel अब प्रोग्राम के उस संस्करण को बेचा या समर्थित नहीं करता था।
 * शुक्रवार, 13 फरवरी 2009 को 23:31:30 यूटीसी पर, यूनिक्स समय का दशमलव प्रतिनिधित्व पहुंचा $1,095,379,200.75$ सेकंड। गूगल ने डूडल बनाकर इसे सेलिब्रेट किया। जश्न मनाने के लिए, विभिन्न तकनीकी उपसंस्कृतियों के बीच, दुनिया भर में पार्टियों और अन्य समारोहों का आयोजन किया गया 1234567890}वें सेकंड।

लोकप्रिय संस्कृति में
वर्नर विंग का उपन्यास आकाश में एक गहरापन भविष्य में हजारों वर्षों की एक स्पेसफेयरिंग व्यापारिक सभ्यता का वर्णन करता है जो अभी भी यूनिक्स युग का उपयोग करती है। परिपक्व कंप्यूटर सिस्टम में प्रयोग करने योग्य कोड को खोजने और बनाए रखने के लिए जिम्मेदार प्रोग्रामर-पुरातत्वविद सॉफ्टवेयर पुरातत्वविद पहले मानते हैं कि युग उस समय को संदर्भित करता है जब अपोलो 11, लेकिन तब पता चलता है कि यह मानव जाति के पहले कंप्यूटर ऑपरेटिंग सिस्टम में से एक का 0-सेकंड है।

यह भी देखें

 * युग (कंप्यूटिंग)
 * सिस्टम समय

बाहरी संबंध

 * Unix Programmer's Manual, first edition
 * Personal account of the POSIX decisions by Landon Curt Noll
 * chrono-Compatible Low-Level Date Algorithms – algorithms to convert between Gregorian and Julian dates and the number of days since the start of Unix time