मैं DateTimeWithZone struct कि जॉन स्कीट Creating a DateTime in a specific Time Zone in c# fx 3.5Convert दिनांक समय पहले से ही केवल नहीं तो यूटीसी
पर तैनात यह मेरी स्थिति के लिए वास्तव में काम नहीं किया है, क्योंकि यह मानता है कि दिनांक समय निर्माता में पारित कर दिया है का उपयोग कर रहा स्थानीय समय, और इसलिए निर्दिष्ट टाइमज़ोन का उपयोग कर इसे यूटीसी में परिवर्तित कर देता है।
मेरे मामले में हम ज्यादातर यूटीसी में पहले से ही डेटटाइम ऑब्जेक्ट्स में गुज़रेंगे (क्योंकि यह वही है जो हम भंडारित कर रहे हैं) इसलिए हमें केवल स्रोत प्रदर्शन करने की आवश्यकता है यदि स्रोत डेटटाइम है। किंड यूटीसी नहीं है।
इसलिए मैं करने के लिए निर्माता बदल दिया है:
public DateTimeWithZone(DateTime dateTime, TimeZoneInfo timeZone, DateTimeKind kind = DateTimeKind.Utc) {
dateTime = DateTime.SpecifyKind(dateTime, kind);
utcDateTime = TimeZoneInfo.ConvertTimeToUtc(dateTime, timeZone);
this.timeZone = timeZone;
}
यहाँ हम एक वैकल्पिक प्रकार पैरामीटर कि UTC से चूक की है। क्योंकि आपूर्ति की दिनांक समय प्रकार संपत्ति को ठीक से सेट नहीं था
रूपांतरण पूरा नहीं किया जा सका:
हालांकि, इस कोड चल रहा है और एक यूटीसी दिनांक समय गुजर निम्नलिखित अपवाद उत्पन्न करता है। उदाहरण के लिए, जब दयालु संपत्ति DateTimeKind.Local है, स्रोत समय क्षेत्र TimeZoneInfo.Local होना चाहिए।
डॉक्स (http://msdn.microsoft.com/en-us/library/bb495915.aspx) के अनुसार:
dateTime पैरामीटर के प्रकार संपत्ति DateTimeKind.Utc के बराबर होती है और sourceTimeZone पैरामीटर TimeZoneInfo.Utc के बराबर होती है, तो इस विधि किसी भी रूपांतरण के बिना प्रदर्शन dateTime देता है।
चूंकि दोनों इनपुट समय और टाइमज़ोन दोनों में यूटीसी की एक तरह की संपत्ति है तो मुझे यह अपवाद प्राप्त करने की उम्मीद नहीं होगी।
क्या मुझे गलत समझा गया है?
क्या आपका ओएस एक्सपी है? – V4Vendetta
नहीं, यह उपर्युक्त उदाहरण में विंडोज 7 –