Ответ 1
Ваша строка формата неверна. Измените его на
insert = DateTime.ParseExact(line[i], "M/d/yyyy hh:mm", CultureInfo.InvariantCulture);
У меня есть файл с разделителями табуляции, который анализируется и затем вставляется в базу данных. Когда я сталкиваюсь со столбцом даты, у меня возникают проблемы с его анализом.
У меня есть код:
var insert = DateTime.ParseExact(line[i], "d/M/yyyy h:mm", CultureInfo.InvariantCulture);
Строка в line[i]
имеет следующие форматы: 7/7/2011 10:48
, 10/20/2011 6:27
Полученное исключение говорит
DateTime, представленный строкой, не поддерживается в календаре System.Globalization.GregorianCalendar.
Ваша строка формата неверна. Измените его на
insert = DateTime.ParseExact(line[i], "M/d/yyyy hh:mm", CultureInfo.InvariantCulture);
Это потому, что у вас есть дата в американском формате в формате line[i]
и UK в FormatString
.
11/20/2011
M / d/yyyy
Я предполагаю, что вам может потребоваться изменить FormatString на:
"M/d/yyyy h:mm"
Это, вероятно, та же проблема с культурами, что и в этом связанном SO-потоке: Почему DateTime.ParseExact() parse "9/1/2009" с использованием "M/d/yyyy"
Вы уже указали культуру, поэтому попробуйте выполнить слэш.
попробуйте это
var insert = DateTime.ParseExact(line[i], "M/d/yyyy h:mm", CultureInfo.InvariantCulture);