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

ऐसे देश जिन्होंने अपने समय क्षेत्र के नियम बदले हैं

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

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

इसीलिए किसी नामित ज़ोन से अलग सिर्फ़ UTC ऑफ़सेट स्टोर करना किसी भी ऐसे डेटा के लिए जोखिम भरा है जिसे कुछ महीनों से ज़्यादा इस्तेमाल होना है। आज दर्ज किया गया ऑफ़सेट किसी ऐसे नियम का स्नैपशॉट है जो बदल सकता है। Pacific/Auckland या Asia/Kolkata जैसा ज़ोन नाम अपडेट होते रहने वाले नियम सेट का संदर्भ रखता है, इसलिए जब तक मूल डेटाबेस अपडेट रहता है, उस नाम के आधार पर की गई गणनाएँ नियम बदलने के बाद भी सही रहती हैं, आपको अपने डेटा को छूने की ज़रूरत के बिना।

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

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