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

समय क्षेत्र डेटा: नियमों को वास्तव में कैसे अपडेट रखा जाता है

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

ठीक इसी कारण ज़्यादातर सॉफ़्टवेयर IANA समय क्षेत्र डेटाबेस को संदर्भ के रूप में इस्तेमाल करते हैं। इसके रखरखाव करने वाले कानूनी समय बदलावों पर तब नज़र रखते हैं जब सरकारें उनकी घोषणा करती हैं, चाहे वह डेलाइट सेविंग नीति में बदलाव हो, किसी क्षेत्र द्वारा अपनाए गए UTC ऑफ़सेट में बदलाव हो, या किसी देश के भीतर क्षेत्रों के बीच सीमा समायोजन हो। हर नामित क्षेत्र, जैसे Europe/Amsterdam या America/Chicago, केवल मौजूदा नियम ही नहीं बल्कि पिछले नियमों का पूरा इतिहास भी रखता है, क्योंकि सॉफ़्टवेयर को अक्सर केवल आज के लिए नहीं, बल्कि अतीत की किसी तारीख के लिए भी सही ऑफ़सेट निकालना होता है।

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

इसीलिए समय क्षेत्र लुकअप को केवल संख्यात्मक ऑफ़सेट नहीं, बल्कि असली क्षेत्र का नाम भी लौटाना चाहिए। Europe/Amsterdam के पीछे पूरा इतिहास और डेलाइट सेविंग लॉजिक है। +01:00 साल के केवल एक हिस्से के लिए सही है और यह कुछ नहीं बताता कि यह कब बदलता है। जो सॉफ़्टवेयर किसी स्थान के लिए केवल ऑफ़सेट सहेजता है, वह अगले डेलाइट सेविंग बदलाव पर गलत होने लगेगा, जबकि जो सॉफ़्टवेयर क्षेत्र का नाम सहेजता है, वह तब तक सही बना रहता है जब तक मूल डेटाबेस अद्यतन रखा जाता है।

My Geocode का समय क्षेत्र लुकअप IANA क्षेत्र का नाम और UTC ऑफ़सेट एक साथ लौटाता है, और समय का एक खास पल स्वीकार करता है ताकि डेलाइट सेविंग सहित सही ऑफ़सेट उसी सटीक तारीख के लिए लागू हो, न कि यह मान लिया जाए कि आज का नियम हमेशा लागू था।