C # DateTime.ParseExact - PullRequest
       4

C # DateTime.ParseExact

38 голосов
/ 06 декабря 2011

У меня есть файл с разделителями табуляции, который анализируется и затем вставляется в базу данных. Когда я сталкиваюсь со столбцом даты, у меня возникают проблемы с его анализом.

Код, который у меня есть:

var insert = DateTime.ParseExact(line[i], "d/M/yyyy h:mm", CultureInfo.InvariantCulture);

Строка в line[i] имеет формат 7/7/2011 10:48 Полученное исключение говорит

DateTime, представленный строкой, не поддерживается в календаре System.Globalization.GregorianCalendar.

Ответы [ 4 ]

66 голосов
/ 06 декабря 2011

Ваша строка формата неверна.Измените его на

insert = DateTime.ParseExact(line[i], "M/d/yyyy hh:mm", CultureInfo.InvariantCulture);
3 голосов
/ 06 декабря 2011

Это потому, что у вас есть Дата в американском формате в line[i] и в британском формате в FormatString.

11/20/2011
M / d/yyyy

Я предполагаю, что вам может потребоваться изменить FormatString на:

"M/d/yyyy h:mm"
1 голос
/ 06 декабря 2011

попробуйте

var  insert = DateTime.ParseExact(line[i], "M/d/yyyy h:mm", CultureInfo.InvariantCulture);
1 голос
/ 06 декабря 2011

Вероятно, это та же проблема с культурами, которая представлена ​​в этом связанном SO-потоке: Почему DateTime.ParseExact () не может проанализировать "01.09.2009" с использованием "M / d / yyyy"

Вы уже указали культуру, поэтому попытайтесь избежать косой черты.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...