2016-03-28 26 views
0

biçimlendirilmiş dize aşağıdaki ISO8601 biçimlendirilmiş tarih saat dizesi vardır:ISO8601 DateTime

2016-03-28T16: 07: Bir C# DateTime nesnesine dönüştürmek istiyorum

+ 0200 00, ama kullanıyorum ayrıştırma yöntemi bir istisna atar. Şu

bu adres: (Çalışmaz)

string format = "yyyy-MM-ddTHH:mm:ss+zzzz"; 
CultureInfo provider = CultureInfo.InvariantCulture; 

// Throws the exception: "String was not recognized as a valid DateTime." 
DateTime time = DateTime.ParseExact("2016-03-28T16:07:00+0200", format, provider); 

nasıl ayrıştırma işlevi benim dize ile çalışmak alabilirim?

+2

Tam olarak ne soruyorsunuz? Yaptığın şeyle ilgili ne yapmak istiyorsun? – senschen

+0

Tarihi C# programımda kullanmak istiyorum. Şu anda yaptığım şekilde çalışmıyor. – Evert

+0

Onunla ne yapmak istersiniz? Sorunu anlayamazsak, yardımcı olamayız. :/ – senschen

cevap

1

DateTime time = DateTime.Parse("2016-03-28T16:07:00+0200"); deneyin. Dizeniniz DateTime.Parse() tarafından görünüyor.

0

DateTime yerine DateTimeOffset kullanmanızı öneririz.

var dateString = "2016-03-28T16:07:00+0200"; 
var date = DateTimeOffset.Parse (dateString); 

Console.WriteLine (date.ToString()); 

Eğer DateTime nesnesi

date.UtcDateTime; 

dönüştürmek istiyorsanız Bu yayacaktır:

3/28/2016 4:07:00 PM +02:00 
+0

Yanıtınız için teşekkür ederiz, ancak bir DateTime nesnesine dönüştürmek istiyorum, bu yüzden programımda daha fazla karşılaştırmalar için bu nesneyi kullanabilirim. – Evert

+0

İstediğiniz herhangi bir nesneyi kolayca dönüştürebilirsiniz. Point DateTimeOffset farklı saat dilimlerinde en iyi şekilde çalışır. – Saleem

+0

@Evertür DateTimeOffset öğesinin '.UtcDateTime özelliği özelliğini gör – Saleem