Ich möchte das Gegenteil von this erreichen, das heißt, ich möchte eine string
mit Format hh:mm tt
in eine TimeSpan
mit zero Sekunden konvertieren.AM/PM zu TimeSpan
Zum Beispiel wird 09:45 pm
in 21:45:00
konvertiert.
Ich möchte das Gegenteil von this erreichen, das heißt, ich möchte eine string
mit Format hh:mm tt
in eine TimeSpan
mit zero Sekunden konvertieren.AM/PM zu TimeSpan
Zum Beispiel wird 09:45 pm
in 21:45:00
konvertiert.
Der einfachste Ansatz wäre es wahrscheinlich als DateTime
zu analysieren DateTime.ParseExact
verwenden und dann die TimeOfDay
verwenden, um die TimeSpan
exakt.
DateTime dateTime = DateTime.ParseExact(text,
"hh:mm tt", CultureInfo.InvariantCulture);
TimeSpan span = dateTime.TimeOfDay;
Es ist seltsam, eine führende 0 auf eine Anzahl von Stunden, um zu sehen, wenn Sie aber auch Angabe einer am/pm Bezeichner sind. Sie könnten "h" anstelle von "hh" in der Formatzeichenfolge verwenden, um "9:45 pm" statt "21:45 pm" zuzulassen.
(Ich würde auch argumentieren, dass es eine seltsame Verwendung von TimeSpan
an erster Stelle ist, aber dann sind die .NET-Datum/Uhrzeit-Typen aus meiner Sicht etwas vermasselt. Ich würde empfehlen, Noda Time zu verwenden, aber ich bin voreingenommen :)
TimeSpan tspan;
tspan = DateTime.ParseExact("01:45 PM", "hh:mm tt", CultureInfo.InvariantCulture).TimeOfDay;
Genaue Antwort ist bereits gegeben http://stackoverflow.com/a/17553758/3893182 – danopz
Diese Arbeit für mich.
TimeSpan ts= DateTime.Parse("8:00 PM").TimeOfDay;
Seine Arbeit gut für mich, danke. – amnippon
Ein 'TimeSpan' hat kein Format. –