मैं किसी एप्लिकेशन में नोडाटाइम का उपयोग कर रहा हूं, और मुझे उपयोगकर्ता को ड्रॉपडाउन सूची से अपना टाइमज़ोन चुनने की आवश्यकता है। मेरे पास निम्नलिखित मुलायम आवश्यकताएं हैं:मुझे नोडा टाइम से आईएएनए/ओल्सन समय क्षेत्र की सूची कैसे पॉप्युलेट करनी चाहिए?
1) सूची में केवल वे विकल्प होते हैं जो वास्तविक स्थानों के लिए वर्तमान और निकट भविष्य के लिए उचित रूप से मान्य हैं। ऐतिहासिक, अस्पष्ट, और सामान्य समय क्षेत्र को फ़िल्टर किया जाना चाहिए।
2) सूची को पहले यूटीसी ऑफसेट द्वारा क्रमबद्ध किया जाना चाहिए, और फिर टाइमज़ोन नाम से। यह उम्मीद है कि उन्हें एक क्रम में रखता है जो उपयोगकर्ता के लिए सार्थक है।
मैंने निम्नलिखित कोड लिखा है, जो वास्तव में काम करता है, लेकिन मेरे पास ठीक वही नहीं है जो मैं कर रहा हूं। फ़िल्टर को शायद समायोजित करने की आवश्यकता है, और मैं ऑफसेट को वर्तमान ऑफसेट की बजाय आधार (गैर-डीएसटी) ऑफसेट का प्रतिनिधित्व करना चाहता हूं।
सुझाव? सिफारिशें?
var now = Instant.FromDateTimeUtc(DateTime.UtcNow);
var tzdb = DateTimeZoneProviders.Tzdb;
var list = from id in tzdb.Ids
where id.Contains("/") && !id.StartsWith("etc", StringComparison.OrdinalIgnoreCase)
let tz = tzdb[id]
let offset = tz.GetOffsetFromUtc(now)
orderby offset, id
select new
{
Id = id,
DisplayValue = string.Format("({0}) {1}", offset.ToString("+HH:mm", null), id)
};
// ultimately we build a dropdown list, but for demo purposes you can just dump the results
foreach (var item in list)
Console.WriteLine(item.DisplayValue);
वहाँ ऐतिहासिक समय-क्षेत्रों को फ़िल्टर करने के कुछ साफ रास्ता नहीं है? TZ डेटाबेस में से और तारीखें हैं जो टाइमज़ोन मान्य हैं। क्या नोडा किसी भी तरह से इसका खुलासा करता है? –
@ मैट जॉनसन: नहीं - टीजेडीबीबी का कौन सा हिस्सा उसको उजागर करता है? मुझे कबूल करना चाहिए कि मैंने कभी प्रारूप को पूरी तरह से समझ नहीं लिया है, लेकिन अगर ऐसा कुछ है जिसे हम जोड़ सकते हैं, तो हम ऐसा कर सकते हैं (हालांकि शायद 1.0 के लिए नहीं)। (आमतौर पर समय क्षेत्र के भीतर विशेष नियमों के लिए होते हैं, और मैंने सोचा कि अंतिम नियम हमेशा "अधिकतम" था।) –
मैंने इस पृष्ठ पर ठोकर खाई http://69.36.11.139/tzdb/tz-how- to.html जो चीजों को काफी अच्छी तरह से समझाता है। प्रतीत होता है कि नियम प्रविष्टियों में मुझे आवश्यक डेटा होना प्रतीत होता है। –