Unix टाइमस्टैम्प क्या है?
Unix टाइमस्टैम्प (जिसे epoch time या POSIX time भी कहा जाता है) उन सेकंडों की संख्या है जो 1 जनवरी 1970 को 00:00:00 UTC — यानी "Unix epoch" — से अब तक बीत चुके हैं, और इसमें leap seconds नहीं गिने जाते। कंप्यूटर किसी भी पल को एक अकेली संख्या के रूप में सहेजने के लिए यही सार्वभौमिक तरीका अपनाते हैं, और यह टाइम ज़ोन से पूरी तरह स्वतंत्र होता है। यह कैलकुलेटर मिलीसेकंड में दी गई किसी वैल्यू को मानक Unix टाइमस्टैम्प (सेकंड में) में बदलता है, और साथ ही epoch से बीते बराबर मिनट, घंटे और दिन भी दिखाता है।
इसका उपयोग कैसे करें
समय की वैल्यू मिलीसेकंड में दर्ज करें। वर्तमान Unix टाइमस्टैम्प ("epoch now") पाने के लिए, अभी का समय मिलीसेकंड में डालें; उदाहरण के तौर पर एक डिफ़ॉल्ट वैल्यू पहले से दी गई है। कैलकुलेटर इसे 1,000 से भाग देकर और नीचे की ओर round करके पूर्ण सेकंड निकालता है — यही वह फ़ॉर्मेट है जिसकी अपेक्षा लगभग हर API, डेटाबेस और प्रोग्रामिंग भाषा करती है।
फ़ॉर्मूला समझें
मुख्य गणना है $$\text{Epoch} = \left\lfloor \dfrac{\text{Time (ms)}}{1000} \right\rfloor$$ मिलीसेकंड हज़ारवें सेकंड तक की सटीकता देते हैं, लेकिन क्लासिक Unix टाइमस्टैम्प पूर्ण सेकंड में मापा जाता है, इसलिए हम floor लेते हैं (दशमलव वाला हिस्सा छोड़ देते हैं)। इसके बाद, epoch को क्रमशः \(60\), \(3{,}600\) और \(86{,}400\) से भाग देने पर मिनट, घंटे और दिन मिल जाते हैं।
$$\left\{ \begin{aligned} \text{Minutes} &= \left\lfloor \tfrac{\text{Epoch}}{60} \right\rfloor \\ \text{Hours} &= \left\lfloor \tfrac{\text{Epoch}}{3600} \right\rfloor \\ \text{Days} &= \left\lfloor \tfrac{\text{Epoch}}{86400} \right\rfloor \end{aligned} \right.$$
हल किया हुआ उदाहरण
मान लीजिए वर्तमान समय \(1{,}700{,}000{,}000{,}000\) मिलीसेकंड है। इसे 1,000 से भाग देने पर \(1{,}700{,}000{,}000\) सेकंड मिलते हैं — यही Unix टाइमस्टैम्प है। $$\left\lfloor \frac{1{,}700{,}000{,}000}{86{,}400} \right\rfloor = 19{,}675 \text{ days}$$ यानी 1,700,000,000 को 86,400 से भाग देकर floor लेने पर 1 जनवरी 1970 से 19,675 दिन निकलते हैं, जो नवंबर 2023 के मध्य के आसपास का समय है।
अक्सर पूछे जाने वाले सवाल
सेकंड क्यों, मिलीसेकंड क्यों नहीं? मूल Unix मानक सेकंड का इस्तेमाल करता है। JavaScript का Date.now() मिलीसेकंड लौटाता है, इसलिए अक्सर आपको 1,000 से भाग देना पड़ता है।
क्या यह टाइम ज़ोन को संभालता है? नहीं — Unix time हमेशा UTC में होता है। एक ही पल का टाइमस्टैम्प धरती पर हर जगह एक जैसा रहता है।
वर्ष 2038 की समस्या क्या है? जो सिस्टम टाइमस्टैम्प को signed 32-bit integer में सहेजते हैं, वे 19 जनवरी 2038 को overflow हो जाएँगे। आधुनिक 64-bit सिस्टम इस समस्या से बचे रहते हैं।