2012-04-24 8 views
7

मैं स्ट्रिंग को प्रारूपित करना चाहता हूं: "2012-04-20 10: 10: 00 + 0200" इस प्रारूप के साथ दिनांक के समय। तो मुझे लगता है कि यह "yyyy-MM-dd hh: mm: ss zzz" होना चाहिए?सी # स्ट्रिंग टाइमज़ोन के साथ डेटज़ोन

जब मैं इस

// starttime = {20/04/2012 10:10:00} without my +0200! 
DateTime starttime = Convert.ToDateTime("2012-04-20 10:10:00+0200",CultureInfo.CurrentCulture); 
// And this gave me a format exception : {System.FormatException: String was not recognized as a valid DateTime. 
     DateTime result = DateTime.ParseExact("2012-04-20 10:10:00+0200", "yyyy-MM-dd hh:mm:ss zzz", CultureInfo.InvariantCulture); 

समाधान "V4Vendetta" GIVEN की कोशिश की:

आप (DateTimeOffset का उपयोग कर दिनांक समय

DateTimeOffset result = DateTimeOffset.Parse("2012-04-20 10:10:00+0200",CultureInfo.InvariantCulture); 

यहाँ आप ऑफसेट पाने के बजाय 2 घंटे की कोशिश करनी चाहिए) भी जिसे आपके डेटटाइम (10:10) मान के साथ गणना की जा सकती है और अपना वांछित आउट प्राप्त कर सकते हैं (परिणाम। डेटटाइम + परिणाम.ऑफसेट)

+1

यहां एक नज़र डालें: [link] (http://stackoverflow.com/questions/8754563/parse-string- डेटाटाइम युक्त-टाइमज़ोन-जानकारी) – Willem

+1

मेरे ज्ञान के अनुसार आपका इनपुट "2012-04-20 10: 10: 00 + 02: 00" – Ramesh

+0

@Schaliasos beter होना चाहिए? :) – user1264255

उत्तर

22

आप DateTime

DateTimeOffset result = DateTimeOffset.Parse("2012-04-20 10:10:00+0200",CultureInfo.InvariantCulture); 

यहाँ आप Offset (2 घंटे) प्राप्त करने के बजाय DateTimeOffset का उपयोग कर प्रयास करना चाहिए अपनेके साथ परिकलित किया जा सकता जो भी(10:10) मान और अपना वांछित आउट प्राप्त करें (परिणाम। डेटटाइम + परिणाम.ऑफसेट)

+0

धन्यवाद! मैं वोट दूंगा, लेकिन मैं अभी तक – user1264255

+0

खुश नहीं कर सकता! आपको अपने सभी सवालों के जवाब के रूप में चिह्नित करने का प्रयास करना चाहिए * जिसने आपको मदद की और दूसरों को प्रोत्साहित किया। – V4Vendetta

+0

इस तरह की एक उपयोगी बात है! – Keerigan

1

एमएसडीएन लेख here ठीक वही लगता है जो आप खोज रहे हैं। प्रति कहा लेख, आप का उपयोग करना चाहिए {0:MM/dd/yy H:mm:ss zzz}

1

उपयोग "2012-04-20 10:10:00 02: 00" के बदले "" 2012-04-20 10: 10: 00 + 0200 "

+0

में राउंडट्रिपिंग दिनांक/समय के लिए उपयोगी एमएसडीएन लिंक तब मैं वही मिला जब मैं बस समय-समय पर परिवर्तित करता हूं । परिणाम: // starttime = {20/04/2012 10:10:00} बिना मेरे +0200 – user1264255

+0

यह पहले से ही +02: 00 समय क्षेत्र में होना चाहिए। कृपया टूस्ट्रिंग द्वारा जांचें ("yyyy-MM-dd hh: mm: ss zzz") –

+0

यह सही है, लेकिन मुझे वास्तव में डेटटाइम में इसकी आवश्यकता है। वी 4 वेंडेटा ने मुझे सही समाधान दिया है। लेकिन अभी भी आपकी मदद के लिए धन्यवाद :) – user1264255

0

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

DateTime datetime = DateTime.ParseExact("10/10/2009 12:00:00", "MM/dd/yyyy hh:mm:ss", System.Globalization.CultureInfo.CurrentCulture); 
संबंधित मुद्दे