c# преобразование строки в дату
У меня есть строка вроде этой "24: 00: 00", и я хотел бы преобразовать ее во время. Я попытался преобразовать и DateTime.Разбор, но кажется, что ему тоже нужна дата. Есть ли способ просто получить время, или мне тоже нужно назначить дату?
6 ответов
Если вас интересует только компонента времени, рассмотрите возможность использования TimeSpan
вместо DateTime
.
var time = TimeSpan.Parse("23:59:59");
Я не уверен, что "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, если вы не уверены, что ввод будет действительным
можно использовать 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());
вы можете использовать timespan
http://msdn.microsoft.com/en-us/library/system.timespan.aspx
как о
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]));
надеюсь, что это помогает.