Chcę osiągnąć konwersję this, czyli chcę przekonwertować string
o formacie hh:mm tt
na TimeSpan
z zerowymi sekundami.AM/PM to TimeSpan
Na przykład 09:45 pm
jest konwertowany na 21:45:00
.
Chcę osiągnąć konwersję this, czyli chcę przekonwertować string
o formacie hh:mm tt
na TimeSpan
z zerowymi sekundami.AM/PM to TimeSpan
Na przykład 09:45 pm
jest konwertowany na 21:45:00
.
Najprostsze podejście byłoby prawdopodobnie do analizowania go jako DateTime
wykorzystaniem DateTime.ParseExact
, a następnie użyj TimeOfDay
do Dokładna TimeSpan
.
DateTime dateTime = DateTime.ParseExact(text,
"hh:mm tt", CultureInfo.InvariantCulture);
TimeSpan span = dateTime.TimeOfDay;
To dziwne zobaczyć cyfrę 0 na kilka godzin, gdy jesteś również określając AM/PM oznacznik chociaż. Możesz chcieć "h" zamiast "hh" w ciągu formatów, aby "21:45" zamiast "09:45".
(Ja również twierdzę, że to dziwne użycie TimeSpan
, ale potem typy danych .NET/date są nieco pomieszane w moim widoku. Zalecam używanie Noda Time, ale jestem stronniczy :)
TimeSpan tspan;
tspan = DateTime.ParseExact("01:45 PM", "hh:mm tt", CultureInfo.InvariantCulture).TimeOfDay;
Dokładna odpowiedź jest już podana http://stackoverflow.com/a/17553758/3893182 – danopz
Ta praca dla mnie.
TimeSpan ts= DateTime.Parse("8:00 PM").TimeOfDay;
Jego praca w porządku dla mnie, dzięki. – amnippon
"TimeSpan" nie ma formatu. –