2012-08-08 19 views
10

के साथ डेटाटाइम के लिए प्रारूप स्ट्रिंग प्रारूप में मेरे पास string s = "May 16, 2010 7:20:12 AM CDT है जो मैं डेटटाइम ऑब्जेक्ट में कनवर्ट करना चाहता हूं। नीचे दिए गए कोड में मुझे एक ज्ञात प्रारूप के साथ पाठ को पार्स करने का प्रयास करते समय दिनांक प्रारूप को त्रुटि में परिवर्तित नहीं किया जा सकता है।टाइमज़ोन

timeStamp = matches[0].Groups[1].Value; 
dt = DateTime.ParseExact(timeStamp, "MMM dd, yyyy H:mm:ss tt", null); 

समय क्षेत्र CDT यूटीसी के रूप में आता है ... और मुझे लगता है कि क्या समस्या है या मेरी प्रारूप के कारण है?

+0

कैसे 'वर dt = DateTime.ParseExact के बारे में (रों , "एमएमएम डीडी, yyyy एच: मिमी: एसएसटी टीटी 'सीडीटी'", शून्य); '? – Vlad

उत्तर

7

Central Daylight Time

इस प्रयास करें:

string dts = "May 16, 2010 7:20:12 AM CDT"; 
DateTime dt = 
    DateTime.ParseExact(dts.Replace("CDT", "-05:00"), "MMM dd, yyyy H:mm:ss tt zzz", null); 

संपादित करें:

डेलाइट सेविंग टाइम के लिए विचार करें DateTime.IsDaylightSavingTime और TimeZone.CurrentTimeZone

Custom Date and Time Format Strings

+1

क्या होता है यदि सीडीटी में डेलाइट बचत समय होता है और -4 हो जाता है? – Greg

+0

उत्तर में जोड़ा गया – rumburak

+0

मुझे ऑफ सेट और टाइमज़ोन के बारे में जानकारी कहां मिलती है, मैं सीएसटी को टाइमज़ोन के रूप में भी प्राप्त कर सकता हूं और डेलाइट बचत समय को बदलने और संभालने की आवश्यकता है। – Warz

3

सुनिश्चित करें डेटटाइम अनजाने में डेटटाइमकिंड.यूटीसी है। "जीएमटी" से बचें, यह डेलाइट सेविंग के लिए संदिग्ध है।

var dt = new DateTime(2010, 1, 1, 1, 1, 1, DateTimeKind.Utc); 
    string s = dt.ToLocalTime().ToString("MMM dd, yyyy HH:mm:ss tt \"GMT\"zzz"); 

यह उत्पादन देता है: दिसंबर 31, 2010 19:01:01 pm GMT-06: 00

अधिक विस्तार के लिए उल्लेख इस Link

+0

यूटीसी का उपयोग करना सही है क्योंकि यह है अंतरराष्ट्रीय मानक, लेकिन यह जीएमटी डेलाइट सेविंग के लिए संदिग्ध नहीं है। जीएमटी हमेशा यूटीसी + 0 है। गर्मी के दौरान यूके बीएसटी में स्विच करता है। Http://www.differencebetween.com/difference-between-gmt-and-utc/ पर अधिक जानकारी – thelem

संबंधित मुद्दे