Windows और IANA समय क्षेत्र पहचानकर्ताओं के बीच रूपांतरण के लिए डेटा का प्राथमिक स्रोत windowsZones.xml
फ़ाइल है, जिसे यूनिकोड CLDR परियोजना के हिस्से के रूप में वितरित किया गया है । नवीनतम देव संस्करण यहां पाया जा सकता है ।
हालांकि , CLDR सालाना केवल दो बार जारी की जाती है। यह, विंडोज अपडेट की आवधिक ताल के साथ, और आईएएनए समय क्षेत्र डेटाबेस के अनियमित अपडेट के साथ, यह सीधे सीएलडीआर डेटा का उपयोग करने के लिए जटिल बनाता है। ध्यान रखें कि समय क्षेत्र में परिवर्तन स्वयं विश्व की विभिन्न सरकारों के समय पर किए जाते हैं, और सभी परिवर्तन पर्याप्त सूचना के साथ नहीं किए जाते हैं ताकि वे अपनी संबंधित तिथियों से पहले इन रिलीज चक्रों में शामिल हो सकें।
कुछ अन्य एज मामले हैं जिन्हें सीएलडीआर द्वारा कड़ाई से कवर नहीं किए जाने की आवश्यकता है, और नए समय-समय पर पॉप अप होते रहते हैं। इसलिए, मैंने TimeZoneConverter माइक्रो-लाइब्रेरी में समाधान की जटिलता को समझाया है , जिसे Nuget से स्थापित किया जा सकता है।
इस पुस्तकालय का उपयोग करना सरल है। यहाँ रूपांतरण के कुछ उदाहरण दिए गए हैं:
string tz = TZConvert.IanaToWindows("America/New_York");
// Result: "Eastern Standard Time"
string tz = TZConvert.WindowsToIana("Eastern Standard Time");
// result: "America/New_York"
string tz = TZConvert.WindowsToIana("Eastern Standard Time", "CA");
// result: "America/Toronto"
प्रोजेक्ट साइट पर अधिक उदाहरण हैं ।
यह पहचानना महत्वपूर्ण है कि जब एक आईएएनए समय क्षेत्र को एक एकल विंडोज समय क्षेत्र में मैप किया जा सकता है, तो रिवर्स सच नहीं है। एक एकल Windows समय क्षेत्र एक से अधिक IANA समय क्षेत्र के लिए मैप किया जा सकता है। यह उपरोक्त उदाहरणों में देखा जा सकता है, जहां Eastern Standard Time
दोनों को मैप किया गया है America/New_York
, और America/Toronto
। "001"
जब तक आप विशेष रूप से एक देश कोड प्रदान करते हैं और उस देश में एक अलग क्षेत्र के लिए एक मैच होता है, तब तक TimeZoneConverter सीएलडीआर के निशान के साथ वितरित करेगा , जिसे "गोल्डन ज़ोन" के रूप में जाना जाता है।
नोट: यह उत्तर वर्षों में विकसित हुआ है, इसलिए नीचे दी गई टिप्पणियाँ वर्तमान संशोधन पर लागू हो सकती हैं या नहीं। विवरण के लिए संपादित इतिहास की समीक्षा करें। धन्यवाद।
(GMT+05:30) Chennai, Kolkata, Mumbai, New Delhi
देता हैAsia/Calcutta
यह होना चाहिएAsia/Kolkata
। ऐसा लगता है जैसेTzdbDateTimeZoneSource
पुराने मान शामिल हैं।