2016-03-28 15 views
0

Ich habe folgendes ISO8601 formatiert Datum Zeit string:ISO8601 formatierten String in Datetime

2016-03-28T16: 07: 00 + 0200

ich es in eine C# DateTime Objekt konvertieren möchten, aber die Parsing-Methode, die ich verwende, löst eine Ausnahme aus.

Zur Zeit habe ich dies: (funktioniert nicht)

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); 

Wie erhalte ich die Parse-Funktion mit meinem String zu arbeiten?

+2

Was genau fragen Sie? Was willst du machen, mit dem du Probleme hast? – senschen

+0

Ich möchte das Datum in meinem C# -Programm verwenden. Die Art, wie ich es derzeit mache, funktioniert nicht. – Evert

+0

Was willst du damit machen? Wir können nicht helfen, wenn wir das Problem nicht verstehen können. :/ – senschen

Antwort

0

Ich empfehle die Verwendung von DateTimeOffset anstelle von DateTime.

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

Console.WriteLine (date.ToString()); 

Wenn Sie Datetime-Objekt konvertieren möchten

date.UtcDateTime; 

Es wird emittieren:

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

Vielen Dank für Ihre Antwort, aber ich möchte es in ein DateTime-Objekt konvertieren, damit ich dieses Objekt für Vergleiche weiter in meinem Programm verwenden kann. – Evert

+0

Sie können einfach zu dem Objekt konvertieren, das Sie möchten. Point ist DateTimeOffset funktioniert am besten mit verschiedenen Zeitzonen. – Saleem

+0

@Evert siehe '.UtcDateTime' Eigenschaft von DateTimeOffset – Saleem