DateTime.Parse с пользовательским DateTimeFormatInfo выдает исключение
Почему этот код вызывает исключение?
var dateTime = "2012-03-21_15.12";
var format = new DateTimeFormatInfo()
{
FullDateTimePattern = "yyyy-MM-dd-HH_mm.ss"
};
// FormatException: String was not recognized as a valid DateTime.
var parse = DateTime.Parse(dateTime, format);
2 ответа
Решение
Ваша строка формата и строка даты не совпадают.
Кажется, вы забыли часть часов или минут в строке даты.
Это:
var dateTime = "2012-03-21_15.12";
Должно быть похоже на:
var dateTime = "2012-03-21-15_54.12";
И я предлагаю использовать DateTime.ParseExact
:
DateTime.ParseExact("2012-03-21-16_15.12",
"yyyy-MM-dd-HH_mm.ss",
CultureInfo.InvariantCulture,
DateTimeStyles.None)
Вы можете использовать DateTime.ParseExact, так как в качестве параметра будет использоваться шаблон формата даты и времени.