ti-enxame.com

C # DateTime.ParseExact

Eu tenho um arquivo delimitado por tabulação que está sendo analisado e inserido em um banco de dados. Quando encontro a coluna da data, tenho problemas para analisá-la.

O código que tenho é:

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

A sequência em line[i] está no formato 7/7/2011 10:48 A exceção que recebo diz

O DateTime representado pela sequência não é suportado no calendário System.Globalization.GregorianCalendar.

40
Jonathan

Sua string de formato está incorreta. Mude para

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

Isso ocorre porque você tem a data no formato americano em line[i] e o formato do Reino Unido em FormatString.

11/20/2011
M / d/yyyy

Acho que você pode precisar alterar o FormatString para:

"M/d/yyyy h:mm"
3
DaveShaw

Provavelmente, é o mesmo problema com as culturas apresentado neste thread SO relacionado: Por que o DateTime.ParseExact () não pode analisar "1/9/2009" usando "M/d/aaaa"

Você já especificou a cultura, então tente escapar das barras.

1
Pieter

tente isso

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