2015-07-19 2 views
0

Мне нужно преобразовать строку в отрезок времени, и для достижения этой цели я использовал следующее преобразование,Преобразование строки в timespan с помощью C#?

DateTime time = DateTime.ParseExact("12:00 AM", "h:mm tt", CultureInfo.InvariantCulture); 
TimeSpan timeSpan = time .TimeOfDay; 

Который работает хорошо все, кроме 12:00 AM, он дает 12:00 как для AM/PM , что нормально в 12:00, но мне нужно 00:00 00:00:00, есть ли способ, которым я могу это достичь?

+0

Ваш код дает '00: 00: 00' для меня. – SLaks

+0

12:00 AM = 00:00:00, 12:00 PM = 12:00:00 для меня также –

+0

@SLaks О, на самом деле да, он работает отлично, мой плохой я не отлаживал тщательно, спасибо. – Learner

ответ

3

использование ниже код:

DateTime time = DateTime.ParseExact("00:00", "hh:mm", CultureInfo.InvariantCulture); 

Для получения дополнительных возможностей проверить это link

0

Вам не нужно использовать ParseExact вместо того, чтобы использовать этот метод используют простой метод Parse. но для того, чтобы использовать во время использования формат HH:mm для метода ToString. результат

DateTime timeAM = DateTime.Parse("12:00 AM", CultureInfo.InvariantCulture); 
DateTime timePM = DateTime.Parse("12:00 PM", CultureInfo.InvariantCulture); 
Console.WriteLine(timeAM.ToString("HH:mm")); 
Console.WriteLine(timePM.ToString("HH:mm")); 

Возвращает подобное:

//00:00 
//12:00 
Смежные вопросы