डेटा की गुणवत्ता

समय क्षेत्र में ऐतिहासिक बदलाव और वे आज भी क्यों मायने रखते हैं

समय क्षेत्र ऑफ़सेट की गणना करने वाला सॉफ़्टवेयर अक्सर बिना कहे यह मान लेता है कि किसी समय क्षेत्र का मौजूदा नियम हमेशा से लागू रहा है, और यह धारणा तब तक ठीक काम करती है जब तक आपको सबसे हाल के नियम बदलाव से पहले के किसी टाइमस्टैम्प को सही ढंग से समझने की ज़रूरत नहीं पड़ती, और उस समय यह चुपचाप ऐसा गलत जवाब देती है जो पूरी तरह विश्वसनीय लगता है। लंबी समय अवधि में ऐतिहासिक टाइमस्टैम्प सहेजने या प्रोसेस करने वाले सिस्टम में यह बारीक डेटा गड़बड़ी का एक सच में आम स्रोत है।

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

ठीक इसी वजह से IANA समय क्षेत्र डेटाबेस हर नाम वाले समय क्षेत्र के लिए सिर्फ़ मौजूदा नियम नहीं, बल्कि नियम बदलावों का पूरा इतिहास सहेजता है। इस पर सही ढंग से बना सॉफ़्टवेयर इस सवाल का जवाब दे सकता है कि "इस खास ऐतिहासिक तारीख पर इस समय क्षेत्र का UTC ऑफ़सेट क्या था," जो "इस समय क्षेत्र का अभी UTC ऑफ़सेट क्या है" से सच में अलग और ज़्यादा जटिल सवाल है, और इन्हें आपस में मिला देना ही वह तरीका है जिससे ऐतिहासिक टाइमस्टैम्प डेटा चुपचाप गलत होता चला जाता है।

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

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