यूनिक्स टाइमस्टॅम्प कन्वर्टर
कन्वर्ट केलेली तारीख आणि वेळ
युनिक्स टाइमस्टॅम्प रूपांतरक
परिचय
युनिक्स टाइमस्टॅम्प (ज्याला POSIX वेळ किंवा Epoch वेळ म्हणूनही ओळखले जाते) हा वेळेच्या एका बिंदूचे वर्णन करण्यासाठी एक प्रणाली आहे. हे 1 जानेवारी 1970 (मध्यान्ह UTC/GMT) पासून गेलेले सेकंद आहेत, उडीचे सेकंद मोजत नाहीत. युनिक्स टाइमस्टॅम्प संगणक प्रणालींमध्ये आणि प्रोग्रामिंग भाषांमध्ये मोठ्या प्रमाणावर वापरले जातात कारण ते विशिष्ट क्षणाचे संक्षिप्त, भाषाशुद्ध प्रतिनिधित्व प्रदान करतात.
हा रूपांतरक तुम्हाला युनिक्स टाइमस्टॅम्पला मानव वाचनायोग्य दिनांक आणि वेळ फॉरमॅटमध्ये रूपांतरित करण्याची परवानगी देतो. हे 12-तास (AM/PM) आणि 24-तास वेळ फॉरमॅट दोन्हीला समर्थन देते जे विविध प्रादेशिक आणि वैयक्तिक आवडीनुसार अनुकूल आहे.
युनिक्स टाइमस्टॅम्प कसे कार्य करतात
युनिक्स टाइमस्टॅम्प युनिक्स एपोक (1 जानेवारी 1970, 00:00:00 UTC) पासून गेलेले सेकंद म्हणून गणना केले जातात. त्यामुळे ते वेळेच्या फरकांची गणना करण्यासाठी आणि संक्षिप्त स्वरूपात तारखा संग्रहित करण्यासाठी विशेषतः उपयुक्त आहेत.
युनिक्स टाइमस्टॅम्पला कॅलेंडर दिनांकात रूपांतरित करण्याची गणितीय प्रक्रिया अनेक चरणांमध्ये होते:
- युनिक्स एपोक (1 जानेवारी 1970, 00:00:00 UTC) पासून प्रारंभ करा
- टाइमस्टॅम्पमधील सेकंदांची संख्या जोडा
- उडीच्या वर्षांची, विविध महिन्यांच्या लांबीची आणि इतर कॅलेंडरच्या गुंतागुंतांची गणना करा
- आवश्यक असल्यास टाइमझोन समायोजन लागू करा
उदाहरणार्थ, युनिक्स टाइमस्टॅम्प 1609459200
म्हणजे शुक्रवार, 1 जानेवारी 2021, 00:00:00 UTC.
रूपांतरण सूत्र असे व्यक्त केले जाऊ शकते:
अधिकांश प्रोग्रामिंग भाषांमध्ये आणि ऑपरेटिंग सिस्टममध्ये या रूपांतरणाचे व्यवस्थापन करण्यासाठी अंतर्निहित कार्ये उपलब्ध आहेत, ज्यामुळे जटिल कॅलेंडर गणनांचा विचार करण्याची आवश्यकता नाही.
वेळ फॉरमॅट पर्याय
हा रूपांतरक दोन वेळ फॉरमॅट पर्याय प्रदान करतो:
-
24-तास फॉरमॅट (कधी कधी "सैन्य वेळ" म्हणूनही ओळखले जाते): तास 0 ते 23 पर्यंत असतात, आणि AM/PM चा उल्लेख नाही. उदाहरणार्थ, 3:00 PM ला 15:00 म्हणून दर्शवले जाते.
-
12-तास फॉरमॅट: तास 1 ते 12 पर्यंत असतात, मध्यरात्री ते दुपारी AM (ante meridiem) आणि दुपारी ते मध्यरात्री PM (post meridiem) असतात. उदाहरणार्थ, 24-तास फॉरमॅटमध्ये 15:00 ला 3:00 PM म्हणून दर्शवले जाते.
या फॉरमॅट्समधील निवड मुख्यत: प्रादेशिक परंपरा आणि वैयक्तिक आवडीनुसार असते:
- 24-तास फॉरमॅट बहुतेक युरोप, लॅटिन अमेरिका आणि आशियामध्ये, तसेच वैज्ञानिक, सैन्य आणि वैद्यकीय संदर्भांमध्ये जगभरात सामान्यतः वापरला जातो.
- 12-तास फॉरमॅट युनायटेड स्टेट्स, कॅनडा, ऑस्ट्रेलिया आणि काही इतर इंग्रजी बोलणाऱ्या देशांमध्ये दररोजच्या वापरासाठी प्रचलित आहे.
कडवट प्रकरणे आणि मर्यादा
युनिक्स टाइमस्टॅम्पसह काम करताना, काही कडवट प्रकरणे आणि मर्यादांविषयी जागरूक असणे महत्त्वाचे आहे:
-
ऋणात्मक टाइमस्टॅम्प: हे युनिक्स एपोक (1 जानेवारी 1970) पूर्वीच्या तारखांचे प्रतिनिधित्व करतात. गणितीयदृष्ट्या वैध असले तरी, काही प्रणाली ऋणात्मक टाइमस्टॅम्प योग्यरित्या हाताळू शकत नाहीत.
-
2038 समस्या: युनिक्स टाइमस्टॅम्प बहुतेकदा 32-बिट साइन केलेल्या पूर्णांकांमध्ये संग्रहित केले जातात, जे 19 जानेवारी 2038 रोजी ओव्हरफ्लो होईल. यानंतर, 32-बिट प्रणाली वेळांचे योग्य प्रतिनिधित्व करण्यास असमर्थ असतील, जोपर्यंत त्यांना मोठ्या पूर्णांक प्रकार वापरण्यासाठी सुधारित केले जात नाही.
-
अत्यंत मोठे टाइमस्टॅम्प: खूप दूरच्या भविष्यातील तारखा काही प्रणालींमध्ये प्रतिनिधित्व करण्यायोग्य असू शकत नाहीत, किंवा असमानपणे हाताळल्या जाऊ शकतात.
-
उडीचे सेकंद: युनिक्स वेळ उडीचे सेकंद लक्षात घेत नाही, जे UTC मध्ये पृथ्वीच्या असमान फिरण्याच्या भरपाईसाठी कधीकधी जोडले जातात. यामुळे युनिक्स वेळ खगोल वेळेसह अचूकपणे समक्रमित होत नाही.
-
टाइमझोन विचार: युनिक्स टाइमस्टॅम्प क्षणांचे प्रतिनिधित्व UTC मध्ये करतात. स्थानिक वेळेत रूपांतरित करण्यासाठी अतिरिक्त टाइमझोन माहिती आवश्यक आहे.
-
डेयलाईट सेव्हिंग टाइम: टाइमस्टॅम्प्स स्थानिक वेळेत रूपांतरित करताना, डेयलाईट सेव्हिंग टाइम संक्रमणांच्या गुंतागुंतांचा विचार करणे आवश्यक आहे.
वापर प्रकरणे
युनिक्स टाइमस्टॅम्प संगणक आणि डेटा व्यवस्थापनातील अनेक अनुप्रयोगांमध्ये वापरले जातात:
-
डेटाबेस रेकॉर्ड: टाइमस्टॅम्प सामान्यतः नोंदी तयार केल्या किंवा सुधारित झाल्या तेव्हा नोंदवण्यासाठी वापरले जातात.
-
वेब विकास: HTTP हेडर, कुकीज, आणि कॅशिंग यांत्रणांमध्ये युनिक्स टाइमस्टॅम्प वापरले जातात.
-
लॉग फाइल्स: प्रणाली लॉग सामान्यतः घटनांची नोंद ठेवण्यासाठी युनिक्स टाइमस्टॅम्पसह नोंदवतात.
-
आवृत्ती नियंत्रण प्रणाली: Git आणि इतर VCS टाइमस्टॅम्प वापरतात जेव्हा कमिट्स केल्या जातात.
-
API प्रतिसाद: अनेक वेब API त्यांच्या प्रतिसादांमध्ये टाइमस्टॅम्प समाविष्ट करतात जेव्हा डेटा तयार केला जातो किंवा संसाधने शेवटच्या वेळेस सुधारित केल्या जातात.
-
फाइल सिस्टम: फाइल तयार करण्याची आणि सुधारित करण्याची वेळ सामान्यतः युनिक्स टाइमस्टॅम्प म्हणून संग्रहित केली जाते.
-
सत्र व्यवस्थापन: वेब अनुप्रयोग टाइमस्टॅम्प वापरतात जेव्हा वापरकर्ता सत्रे संपुष्टात येणे आवश्यक आहे.
-
डेटा विश्लेषण: टाइमस्टॅम्प विश्लेषण अनुप्रयोगांमध्ये तात्कालिक डेटासह कार्य करण्यासाठी मानकीकृत मार्ग प्रदान करतात.
पर्याय
जरी युनिक्स टाइमस्टॅम्प मोठ्या प्रमाणावर वापरले जातात, तरी काही विशिष्ट संदर्भांमध्ये अधिक योग्य असलेल्या वेळेच्या प्रतिनिधित्वाच्या स्वरूपांचा विचार केला जाऊ शकतो:
-
ISO 8601: एक मानकीकृत स्ट्रिंग फॉरमॅट (उदा., "2021-01-01T00:00:00Z") जो मानव वाचनायोग्य आहे तरीही क्रमवारीत ठेवण्यायोग्य आहे. डेटा अदलाबदल आणि वापरकर्ता-समोरच्या अनुप्रयोगांसाठी हे सामान्यतः प्राधान्य दिले जाते.
-
RFC 3339: इंटरनेट प्रोटोकॉलमध्ये वापरले जाणारे ISO 8601 चे एक प्रोफाइल, ज्यामध्ये अधिक कठोर स्वरूपन आवश्यकता आहेत.
-
मानव वाचनायोग्य फॉरमॅट्स: स्थानिक दिनांक स्ट्रिंग्ज (उदा., "1 जानेवारी 2021") थेट वापरकर्ता संवादासाठी अधिक योग्य आहेत पण गणनांसाठी कमी उपयुक्त आहेत.
-
Microsoft FILETIME: 64-बिट मूल्य, जे 1601-01-01 पासून 100-नॅनोसेकंदांच्या आंतरांची संख्या दर्शवते, Windows प्रणालींमध्ये वापरले जाते.
-
जुलियन दिवस संख्या: खगोलशास्त्र आणि काही वैज्ञानिक अनुप्रयोगांमध्ये वापरले जाते, 4713 BCE पासूनच्या दिवसांची गणना करते.
वेळ फॉरमॅटच्या निवडीवर प्रभाव टाकणारे घटक आहेत:
- आवश्यक अचूकता
- मानव वाचनायोग्यतेची आवश्यकता
- संग्रहण मर्यादा
- विद्यमान प्रणालींसह सुसंगतता
- प्रतिनिधित्व करण्याची आवश्यक तारखांची श्रेणी
इतिहास
युनिक्स वेळेचा संकल्पना युनिक्स ऑपरेटिंग सिस्टमच्या विकासासह बेल लॅब्समध्ये 1960 च्या दशकाच्या उत्तरार्धात आणि 1970 च्या सुरुवातीला उदयास आली. एपोक म्हणून 1 जानेवारी 1970 निवडणे काहीसे अनियमित होते, परंतु त्या वेळेस व्यावहारिक होते—हे लक्षात ठेवण्यासाठी आवश्यक तारखांच्या संग्रहणाची आवश्यकता कमी होती, परंतु ऐतिहासिक डेटासाठी उपयुक्त असण्यासाठी पुरेसे लांब होते.
मूळ कार्यान्वयनाने 32-बिट साइन केलेल्या पूर्णांकांचा वापर करून सेकंदांची संख्या संग्रहित केली, जे त्या वेळेस युनिक्स प्रणालींच्या अपेक्षित आयुष्यासाठी पुरेसे होते. तथापि, या निर्णयामुळे 2038 समस्या (कधी कधी "Y2K38" किंवा "युनिक्स सहस्त्रक बग" म्हणूनही ओळखले जाते) उद्भवला, कारण 32-बिट साइन केलेले पूर्णांक 1 जानेवारी 2038 (03:14:07 UTC) पर्यंतच्या तारखांचे प्रतिनिधित्व करू शकतात.
युनिक्स आणि युनिक्स-समान ऑपरेटिंग सिस्टम लोकप्रिय झाल्यानंतर, युनिक्स टाइमस्टॅम्प संगणक क्षेत्रात मानक बनला. याला अनेक प्रोग्रामिंग भाषा, डेटाबेस, आणि अनुप्रयोगांनी स्वीकारले, ज्यामुळे त्याचा युनिक्स पर्यावरणाच्या बाहेर विस्तार झाला.
आधुनिक प्रणालींमध्ये टाइमस्टॅम्पसाठी 64-बिट पूर्णांकांचा वापर वाढत आहे, जो एपोकपासून अंदाजे 292 अब्ज वर्षांच्या दोन्ही दिशांमध्ये प्रतिनिधित्व करण्याची श्रेणी वाढवतो, ज्यामुळे 2038 समस्या प्रभावीपणे सोडवली जाते. तथापि, वारसा प्रणालींमध्ये आणि अनुप्रयोगांमध्ये अद्याप असुरक्षितता असू शकते.
युनिक्स टाइमस्टॅम्पची साधेपणा आणि उपयुक्तता यामुळे अधिक विकसित केलेल्या वेळेच्या प्रतिनिधित्वाच्या स्वरूपांवर त्याची चालू प्रासंगिकता सुनिश्चित झाली आहे. हे संगणकात एक मूलभूत संकल्पना म्हणून राहते, ज्यामुळे आमच्या डिजिटल पायाभूत सुविधांचा आधार आहे.
कोड उदाहरणे
येथे विविध प्रोग्रामिंग भाषांमध्ये युनिक्स टाइमस्टॅम्पला मानव वाचनायोग्य तारखांमध्ये रूपांतरित करण्याचे उदाहरणे आहेत:
// जावास्क्रिप्ट टाइमस्टॅम्प रूपांतरण
function convertUnixTimestamp(timestamp, use12Hour = false) {
// नवीन Date ऑब्जेक्ट तयार करा (जावास्क्रिप्ट मिलिसेकंद वापरते)
const date = new Date(timestamp * 1000);
// फॉरमॅट पर्याय
const options = {
year: 'numeric',
month: 'long',
day: 'numeric',
weekday: 'long',
hour: use12Hour ? 'numeric' : '2-digit',
minute: '2-digit',
second: '2-digit',
hour12: use12Hour
};
// स्थानिक स्वरूपण वापरून स्ट्रिंगमध्ये रूपांतरित करा
return date.toLocaleString(undefined, options);
}
// उदाहरण वापर
const timestamp = 1609459200; // 1 जानेवारी 2021 00:00:00 UTC
console.log(convertUnixTimestamp(timestamp, false)); // 24-तास फॉरमॅट
console.log(convertUnixTimestamp(timestamp, true)); // 12-तास फॉरमॅट
कडवट प्रकरणे हाताळणे
युनिक्स टाइमस्टॅम्पसह काम करताना, कडवट प्रकरणे योग्यरित्या हाताळणे महत्त्वाचे आहे. येथे काही सामान्य कडवट प्रकरणे हाताळण्याचे उदाहरण आहे:
// जावास्क्रिप्ट कडवट प्रकरण हाताळणे
function safeConvertTimestamp(timestamp, use12Hour = false) {
// तपासा की टाइमस्टॅम्प वैध आहे का
if (timestamp === undefined || timestamp === null || isNaN(timestamp)) {
return "अवैध टाइमस्टॅम्प";
}
// ऋणात्मक टाइमस्टॅम्पसाठी तपासा (1970 पूर्वीच्या तारखा)
if (timestamp < 0) {
// काही ब्राउझर ऋणात्मक टाइमस्टॅम्प योग्यरित्या हाताळू शकत नाहीत
// 1970 पूर्वीच्या तारखांसाठी अधिक मजबूत पद्धतीचा वापर करा
const date = new Date(timestamp * 1000);
if (isNaN(date.getTime())) {
return "अवैध तारीख (1970 पूर्वी)";
}
}
// Y2K38 समस्येसाठी तपासा (32-बिट प्रणालींसाठी)
const maxInt32 = 2147483647; // 32-बिट साइन केलेल्या पूर्णांकासाठी कमाल मूल्य
if (timestamp > maxInt32) {
// आधुनिक जावास्क्रिप्टमध्ये खूप मोठ्या टाइमस्टॅम्पसाठी BigInt वापरणाचा विचार करा
console.warn("टाइमस्टॅम्प 32-बिट पूर्णांक मर्यादा ओलांडतो (Y2K38 समस्या)");
}
// सामान्य रूपांतरणासह पुढे जा
try {
const date = new Date(timestamp * 1000);
const options = {
year: 'numeric',
month: 'long',
day: 'numeric',
weekday: 'long',
hour: use12Hour ? 'numeric' : '2-digit',
minute: '2-digit',
second: '2-digit',
hour12: use12Hour
};
return date.toLocaleString(undefined, options);
} catch (error) {
return "टाइमस्टॅम्प रूपांतरित करताना त्रुटी: " + error.message;
}
}
संदर्भ
-
"युनिक्स वेळ." विकिपीडिया, विकिमीडिया फाउंडेशन, https://en.wikipedia.org/wiki/Unix_time
-
"2038 समस्या." विकिपीडिया, विकिमीडिया फाउंडेशन, https://en.wikipedia.org/wiki/Year_2038_problem
-
ऑल्सन, आर्थर डेव्हिड. "कॅलेन्ड्रिकल टाइमची गुंतागुंत." द ओपन ग्रुप, https://www.usenix.org/legacy/events/usenix01/full_papers/olson/olson.pdf
-
"ISO 8601." विकिपीडिया, विकिमीडिया फाउंडेशन, https://en.wikipedia.org/wiki/ISO_8601
-
"RFC 3339: इंटरनेटवरील तारीख आणि वेळ: टाइमस्टॅम्प." इंटरनेट अभियांत्रण कार्य गट (IETF), https://tools.ietf.org/html/rfc3339
-
कर्निगन, ब्रायन W., आणि डेनिस M. रिची. "C प्रोग्रामिंग भाषा." प्रेंटिस हॉल, 1988.