- यह कहना नहीं है कि UTC (Coordinated Universal Time) खराब है
- General Conference on Weights and Measures ने 2035 के बाद UTC में leap second को समाप्त करने का निर्णय लिया है
- leap second पृथ्वी के घूर्णन से जुड़ा है, जो अनियमित और अप्रत्याशित रहा है
- UTC के अलावा एक महत्वपूर्ण समय मानक TAI (International Atomic Time) है, जिसमें leap second नहीं होता
- UTC मुख्यतः engineering के लिए इस्तेमाल नहीं होता, इसलिए उसमें leap second हो सकता है, लेकिन Unix time leap second की वजह से linear नहीं रह गया है और इससे बहुत भ्रम पैदा हुआ है
TAI Unix समय
- TAI Unix time, जो 1 जनवरी 1970 0:00:10 से शुरू होता है, linear रूप से बढ़ता है और उपयोगी mathematical properties रखता है, लेकिन लोकप्रिय नहीं है
- यह Unix time से अलग है और उसका सीधा विकल्प नहीं है
- Unix time की तुलना में
- linear होने की वजह से t + 1 second, t + 100000000 second कब होगा, यह बहुत आसानी से निकाला जा सकता है। Unix time में भविष्य के leap second कब होंगे यह पता नहीं होता, इसलिए गणना नहीं की जा सकती, केवल अनुमान लगाया जा सकता है
- दो timestamps का अंतर आसानी से निकाला जा सकता है
- date या time निकालना कठिन है। हम आम तौर पर TAI time नहीं बल्कि UTC time जानना चाहते हैं, इसलिए leap second को reflect करना पड़ता है
- यह unambiguous है और केवल valid values लौटाता है
बिना बड़े हादसे के TAI Unix समय में बदलाव
- POSIX standard में समय को Unix time, TAI+C Unix time, और legacy Unix time — इन 3 रूपों में बाँटने का प्रस्ताव है
- legacy Unix time एक निश्चित समय बिंदु से पहले मौजूदा Unix time लौटाएगा, और उसके बाद TAI+C Unix time लौटाएगा
- leap second online resources पर निर्भर करता है, इसलिए 2035 में जब leap second समाप्त होगा तब बदलाव करना उचित है
4 टिप्पणियां
थोड़ा और विस्तार से पढ़ना चाहिए, ऐसा लगा, इसलिए मैंने जल्दबाज़ी में एक अनुवाद करके देख लिया!
https://weblog2.wafe.kr/posts/translation-unix-time-bad/
क्या यहाँ Unix time से मतलब आमतौर पर इस्तेमाल होने वाला unix timestamp ही है? मैंने तो इसे हमेशा बस इस्तेमाल किया, इसलिए कभी खास सोचा नहीं था, लेकिन फिर इसका मतलब यह होगा कि Linux जैसे OS बीते leap seconds को reflect करके timestamp देते हैं? यह तो बहुत बड़ी बात थी...
यह इसके उलट है। Leap second असल में वास्तविक 1 सेकंड को मानो कभी हुआ ही नहीं ऐसा समय बनाने के अधिक करीब है, इसलिए UTC के अनुसार सेट किया गया OS अगर सिर्फ timestamp लेकर गणना करे तो Unix time निकलता है, और इसके उलट वास्तव में मौजूद leap second को जोड़ना पड़े तभी TAI मान मिलता है।