DateTime.TryParseExact постоянно возвращает falseC#

Место общения программистов C#
Ответить
Anonymous
 DateTime.TryParseExact постоянно возвращает false

Сообщение Anonymous »

У меня есть следующий код, который берет элемент из массива строк и проверяет, соответствует ли он формату даты и времени. Эта проверка выполняется только для элементов 37, 38, 40, 41. Учитывая следующий код и распечатки отладки, я вижу, что выходные данные соответствуют синтаксическому анализу. Почему тогда он возвращает false?

Возможные входные данные:

05/03/2005 23:59:59.999
05/3/2005 23:59:59.999
5/03/2005 23:59:59.999
5/3/2005 23:59:59.999
etc...


Код:

lines = lines + " 23:59:59.999"; //YYYY-MM-DDThh:mm:ss[.mmm]
DateTime datetest;
if (DateTime.TryParseExact(lines, "MM/dd/yyyy HH:mm:ss.mmm", new CultureInfo("en-US"), DateTimeStyles.None, out datetest))
{
}
else
{
//Log and Drop
logfile.WriteLine(System.DateTime.Now.ToString("yyyy.MM.dd.HH.mm.ss") + ": Row #" + row + ", Column #" + (i) + " was not a date in the right format, dropping line. ");
logfile.WriteLine("Original: " + lines);
Console.WriteLine("Date Wrong");
Console.WriteLine("Date: " + lines);
string input = Console.ReadLine();
continue;

}


Вывод на консоль:

Date Wrong
Date: 5/23/2004 23:59:59.999


ОБНОВЛЕНИЕ:

Я попробовал изменить синтаксический анализ для поиска M/dd /гггг вместо этого. Однако теперь вместо этого я получаю этот вывод.

Date Wrong
Date: 05/23/2005 23:59:59.999


ОБНОВЛЕНИЕ 2:

Хорошо, я попробовал изменить синтаксический анализ, чтобы найти " М/д/гггг ЧЧ:мм:сс.ффф», как многие предлагали. Теперь я получаю следующий результат:

Date Wrong
Date: 23.59.59.999


ОБНОВЛЕНИЕ 3:

Хорошо, я попробовал «M/d/ y H:m:s.fff", как было предложено, и я все еще получаю вывод как:

Date Wrong
Date: 05/23/2005 23:59:59.999


Подробнее здесь: https://stackoverflow.com/questions/245 ... urns-false
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C#»