2017-02-27 18 views
1

Ich versuche, einen Datetime aus einer benutzerdefinierten Zeichenfolge zu erstellen aber ich die Störung erhält:Convert benutzerdefinierte Datetime-Zeichenfolge in Datetime-Objekt

String was not recognized as a valid DateTime.

DateTime date = DateTime.ParseExact("Thu Feb 23 23:36:01 EST 2017", "ddd MMM dd hh:mm:ss K yyyy", CultureInfo.InvariantCulture); 

Irgendwelche Vorschläge, wo ich falsch gehe?

+0

Diese Frage bezieht sich nicht auf das hier vorgeschlagene Duplikat. Das Problem ist ein anderes. –

+0

@StephenReindl Es ist teilweise ein Duplikat, aufgrund der unsachgemäßen Behandlung der Zeitzone. – mason

+0

Siehe die Antwort unten das Problem bezieht sich auf die Stunden (HH vs. hh) Feld, nicht die Zeitzone ... –

Antwort

1

hh ist für eine 12-Stunden-Uhr. Sie sollten HH für eine 24-Stunden-Uhr verwenden. Sie müssen auch die mentioned duplicate für bessere Zeitzone Handhabung sehen.

Wenn Sie Zweifel über das Parsen von benutzerdefinierten Formaten haben, überprüfen Sie die Dokumentation! Siehe Custom Date and Time Format Strings auf MSDN.

+0

So scheint es, dass ich K für den EST nicht verwenden kann. So senden sie mir den Datumstring. Ich werde es manipulieren müssen, bevor ich es umwandele. – PrivateJoker

+0

Danke für den HH-Fang. Ich habe nicht einmal bemerkt, dass ich dort das falsche Format hatte. – PrivateJoker

+0

@JDS Ich weiß, dass es nicht unter Kontrolle sein kann, aber wenn Sie vermeiden können, Zeitzonen-Abkürzungen wie "EST" zu parsen, wäre das ideal. – mason