Я знаю, что это слишком поздно, но так как
OP
пользователь хочет некоторые объяснения ..
Я хочу строковое значение конвертировать дату (yyyy-MM-dd). Ниже код, который я пробовал, но он дает мне исключение.
Да потому, что от DateTime.ParseExact
Преобразует заданное строковое представление даты и времени ее DateTime эквивалент. Формат строкового представления должен точно соответствовать заданному формату или генерируется исключение.
В вашем случае это не так. 20141021
отличается от yyyy-MM-dd
. Это должен быть формат yyyyMMdd
, который точно соответствует вашей строке.
Как вы можете видеть, DateTime ожидает, что моя строка будет следовать шаблону «2014-10-21» . Но я не могу изменить мою струну
Но вы всегда можете изменить свой формат yyyyMMdd
string date = "20141021";
DateTime myDate = DateTime.ParseExact(date,"yyyyMMdd",
CultureInfo.InvariantCulture);
Можно ли преобразовать дату строки: «20141021» в YYYY-MM-DD формат?
Нет такой строки даты. Существует string
и есть DateTime
. 20141021
- string
и yyyy-MM-dd
- это строковый формат, который вы хотите проанализировать с помощью этой строки с номером DateTime
.
A DateTime
не имеет любой неявный формат. Он имеет только дату и время. String
представления DateTime
могут иметь форматы.
'' yyyy-MM-dd "' определяет формат. Просто сообщите синтаксическому анализатору, что вы передаете дату форматирования 'yyyyMMdd'. –