У меня есть следующий код, который берет элемент из массива строк и проверяет, соответствует ли он формату даты и времени. Эта проверка выполняется только для элементов 37, 38, 40, 41. Учитывая следующий код и распечатки отладки, я вижу, что выходные данные соответствуют синтаксическому анализу. Почему тогда он возвращает false?
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 Hs.fff", как было предложено, и я все еще получаю вывод как:
У меня есть следующий код, который берет элемент из массива строк и проверяет, соответствует ли он формату даты и времени. Эта проверка выполняется только для элементов 37, 38, 40, 41. Учитывая следующий код и распечатки отладки, я вижу, что выходные данные соответствуют синтаксическому анализу. Почему тогда он возвращает false?
lines[i] = lines[i] + " 23:59:59.999"; //YYYY-MM-DDThh:mm:ss[.mmm] DateTime datetest; if (DateTime.TryParseExact(lines[i], "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[i]); Console.WriteLine("Date Wrong"); Console.WriteLine("Date: " + lines[i]); string input = Console.ReadLine(); continue;
}
[b]Вывод на консоль:[/b]
Date Wrong Date: 5/23/2004 23:59:59.999
[b]ОБНОВЛЕНИЕ:[/b]
Я попробовал изменить синтаксический анализ для поиска M/dd /гггг вместо этого. Однако теперь вместо этого я получаю этот вывод.
Date Wrong Date: 05/23/2005 23:59:59.999
[b]ОБНОВЛЕНИЕ 2:[/b]
Хорошо, я попробовал изменить синтаксический анализ, чтобы найти " М/д/гггг ЧЧ:мм:сс.ффф», как многие предлагали. Теперь я получаю следующий результат:
Date Wrong Date: 23.59.59.999
[b]ОБНОВЛЕНИЕ 3:[/b]
Хорошо, я попробовал «M/d/ y H:m:s.fff", как было предложено, и я все еще получаю вывод как: