c # преобразование строки в дату - PullRequest
7 голосов
/ 13 сентября 2011

У меня есть строка типа «24:00:00», и я хотел бы преобразовать ее во время. Я пробовал конвертировать и DateTime.Parse, но, похоже, ему тоже нужна дата. Есть ли способ просто получить время или мне тоже нужно указать дату?

Ответы [ 6 ]

15 голосов
/ 13 сентября 2011

Если вас интересует только компонент времени, рассмотрите возможность использования TimeSpan вместо полного DateTime.

var time = TimeSpan.Parse("23:59:59");
3 голосов
/ 13 сентября 2011

Я не уверен, что "24:00:00" будет правильным временем.В любом случае, вам не нужно указывать дату, вы можете сделать ...

DateTime time = DateTime.ParseExact("23:59:59", "HH:mm:ss", null);

Если ваше время на самом деле является временем дня, то я бы предложил придерживаться DateTime.Если вы на самом деле используете количество времени (то есть может быть больше, чем 23:59:59), то вы можете использовать TimeSpan ...

TimeSpan time = TimeSpan.ParseExact("23:59:59", "HH:mm:ss", null);

не забывайте, у обоих есть версия TryParseExact, еслине уверены, что ваш ввод будет действительным

2 голосов
/ 13 сентября 2011

Вы можете использовать DateTimeFormatInfo для форматирования вашего DateTime.

string strDate = "23:10:00";
DateTimeFormatInfo dtfi = new DateTimeFormatInfo();
dtfi.ShortTimePattern = "hh:mm:ss";
dtfi.TimeSeparator = ":";
DateTime objDate = Convert.ToDateTime(strDate, dtfi);
Console.WriteLine(objDate.TimeOfDay.ToString());
1 голос
/ 13 сентября 2011

Я думаю, вам нужно TimeSpan.Parse вместо?

0 голосов
/ 13 сентября 2011

Как насчет

var time = new DateTime.Today;
var str = "24:00:00";
var split = str.split(":");

time.AddHours(Convert.ToInt32(split[0]));
time.AddMinutes(Convert.ToInt32(split[1]));
time.AddSeconds(Convert.ToInt32(split[2]));

Надеюсь, это поможет.

0 голосов
/ 13 сентября 2011

Вы можете использовать интервал времени

http://msdn.microsoft.com/en-us/library/system.timespan.aspx

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...