/ / String не було визнано дійсним DateTime за допомогою C # - c #, asp.net, .net

String не визнано дійсним DateTime за допомогою C # - c #, asp.net, .net

Я порівнюючи 2 поля дати, щоб побачити, якщо перше поле дату менше, ніж 2, але я отримую цю помилку "Рядок не був визнаний дійсним DateTime" і це не в цьому рядку

DateTime Field2 = DateTime.Parse(gr.Cells[10].Text);

так виглядає це поле дат у моїй таблиці: 2012-11-08

DateTime Field1 = DateTime.Parse(gr.Cells[3].Text);
DateTime Field2 = DateTime.Parse(gr.Cells[10].Text);
DateTime strDate = System.DateTime.Now;
if (Field2 == null && Field1 < strDate)

Відповіді:

1 для відповіді № 1

Відповідно до Запис MSDN на DateTime.Parse:

Рядок s аналізується з використанням інформації про форматування в поточному об'єкті DateTimeFormatInfo, який неявно подається поточною культурою потоків.

Можливо, ви отримуєте помилку, оскільки ваша поточна культура потоків має суттєво інший формат дати, ніж вказаний вами рядок.

Ви можете вказати формат, який ви будете використовувати для дати:

 DateTime.ParseExact(gr.Cells[10].Text, "yyyy-MM-dd", System.Globalization.CultureInfo.InvariantCulture);

4 для відповіді № 2

використовувати ParseExact і задають формат "yyyy-MM-dd" або "yyyy-dd-MM"


3 для відповіді № 3

Використовуйте DateTime.ParseExact:

var res =
DateTime.ParseExact("2012-11-08", "yyyy-MM-dd",
CultureInfo.InvariantCulture);