Я хочу добиться преобразования этого, что есть, я хочу преобразовать string
в формате hh:mm tt
в TimeSpan
с обнуленными секундами.
Например, 09:45 pm
преобразуется в 21:45:00
.
Я хочу добиться преобразования этого, что есть, я хочу преобразовать string
в формате hh:mm tt
в TimeSpan
с обнуленными секундами.
Например, 09:45 pm
преобразуется в 21:45:00
.
Самым простым подходом, вероятно, было бы проанализировать его как DateTime
с помощью DateTime.ParseExact
, а затем использовать TimeOfDay
, чтобы точнее TimeSpan
.
DateTime dateTime = DateTime.ParseExact(text,
"hh:mm tt", CultureInfo.InvariantCulture);
TimeSpan span = dateTime.TimeOfDay;
Странно видеть 0 в начале нескольких часов, когда вы также указываете обозначение am / pm. Вы можете захотеть «h» вместо «hh» в строке формата, чтобы разрешить «9:45 pm» вместо «21:45 pm».
(Я бы также сказал, что это вообще странное использование TimeSpan
, но тогда типы даты / времени .NET, на мой взгляд, несколько перепутаны. Я бы рекомендовал использовать Noda Time, но я пристрастен :)
Эта работа для Меня.
TimeSpan ts= DateTime.Parse("8:00 PM").TimeOfDay;
Вы можете преобразовать время меридием в промежуток времени, а также промежуток времени в время в меридиуме с датой и только временем, используя фрагмент кода ниже ...
TimeSpan ts = DateTime.Parse("8:00 PM").TimeOfDay;
DateTime dateWithTimeSlot = DateTime.Today+ ts;
//for getting MM/dd/yyyy hh:mm tt format
string dateWithMeridiemTimeSlot =
dateWithTimeSlot.ToString("MM/dd/yyyy hh:mm tt: ", CultureInfo.InvariantCulture);
Console.WriteLine("For getting MM/dd/yyyy hh:mm tt format: "+dateWithMeridiemTimeSlot);
//for getting only hh:mm tt format
string meridiemTimeSlot =
dateWithTimeSlot.ToString("hh:mm tt", CultureInfo.InvariantCulture);
Console.WriteLine("For getting only hh:mm tt format: " + meridiemTimeSlot);
Console.ReadLine();
Давай насладимся!
Спасибо
Единственный способ, который сработал для меня, - Convert.ToDateTime (str) .TimeOfDay. ParseExact привел к ошибке!
string str = "12:01 AM";
TimeSpan ts = Convert.ToDateTime(str).TimeOfDay;
TimeSpan
не имеет формата. - person Henk Holterman   schedule 09.07.2013