2008-10-11 2 views
9

में किसी भी अन्य समय क्षेत्र में यूटीसी समय को समय में परिवर्तित करने के लिए कैसे मैं सी # .net में काम कर रहा हूं - नेट एफएक्स 2.0 है जो विभिन्न समय क्षेत्रों के बीच रूपांतरण को परिवर्तित नहीं करता है। मैंने यूटीसी के आधार पर एक शेड्यूलर लिखा है लेकिन यह लंदन के लिए डीटीएस अवधि में 1 घंटे की त्रुटियां दे रहा है। मुझे कुछ समाधान की आवश्यकता है ताकि मैं सही डीएसटी समायोजन के साथ यूटीसी के सापेक्ष किसी भी समय क्षेत्र में सही समय प्राप्त कर सकूं।सी #

उत्तर

10

क्या प्रश्न के बाहर .NET 3.5 में बदल रहा है? यह आपके जीवन को बहुत आसान बना देगा। अन्यथा, आप सादा टाइमज़ोन और डेलाइट्सविविंग कक्षाओं के साथ-साथ पी/इनवॉक का उपयोग करके ज्ञात टाइमज़ोन लाने के लिए फंस गए हैं।

विलियम स्टेसी के पास blog post with some code to do this है - लेकिन मैंने इसकी कोशिश नहीं की है, इसलिए इसकी सटीकता के लिए प्रतिबद्ध नहीं हो सकता है। (मेरे अनुभव में वह आमतौर पर बहुत अच्छा है :) इसमें कोई संदेह नहीं है कि कोड के समान बिट्स अगर वह आपकी मदद नहीं करता है।

मेरा मानना ​​है कि जिस एपीआई का उपयोग कर रहा है उसके पास ऐतिहासिक डेटा तक पहुंच नहीं है, बीटीडब्ल्यू। दूसरे शब्दों में, यह मान लेंगे कि डीएसटी हमेशा अक्टूबर के पहले रविवार (या जो भी नियम है) में है, यह जानने के बजाय कि नियम समय के साथ बदल गया है। .NET 3.5 में TimeZoneInfo ऐतिहासिक डेटा का समर्थन करता है जहां ओएस करता है।

+0

सहमत हैं। मैंने पुराना कोड पी/Invoke सामान कर रहा है, और 3.5 में TimeZoneInfo इसे सभी अप्रचलित प्रस्तुत करता है। –

+0

मैंने आखिरकार मंच को 3.5 में बदल दिया है। – MSIL

+0

हाय जॉन, ब्लॉग पोस्ट अब और बेवकूफ सवाल उपलब्ध नहीं है, क्या आप जानते हैं कि मैं कहां देख सकता हूं या मुझे कहीं कह सकता हूं जो मुझे उस जानकारी को ढूंढने में मदद कर सकता है? –