2012-04-26 8 views
7

DateTime.Parse falla enDateTime.Parse DD/Reloj MM/AAAA 24 horas

15/08/2000 16:58 

¿Alguna idea?

Necesito analizar las fechas y hacerme internacional.

DD/MM/AAAA no flop para reloj de 24 horas

MM/DD/AAAA aceptará reloj de 24 horas

15/08/2000 16:58 analizará

De la respuesta de Kibbee la miré usando otras culturas. Uso Regex para determinar si es dd/MM y si es así, use culture fr-FR.

+0

¿Está especificando la cultura correcta cuando se llama análisis sintáctico? –

+0

Mi cultura actual es en-US. Como dije, algunos son internacionales. – Paparazzi

Respuesta

26

Trate DateTime.ParseExact():

var result = DateTime.ParseExact(dateString, 
           "dd/MM/yyyy HH:mm", 
           new CultureInfo("en-US")); 
11

Probablemente esté utilizando DateTime.ParseExact para analizar la fecha si conoce el formato exacto en el que espera que aparezca la fecha. Para su propósito, probablemente lo siguiente funcionará.

string dateString, format; 
DateTime result; 
CultureInfo provider = CultureInfo.InvariantCulture; 

dateString = "15/08/2000 16:58" 
format = "dd/MM/yyyy HH:mm" 
result = DateTime.ParseExact(dateString, format, provider); 

Cambio a lo anterior. Se cambió hh a HH porque HH significa 24 horas de tiempo. Si no usa un cero inicial, simplemente use H. Para obtener más información sobre cómo crear cadenas de formato see this article.

También desde el artículo enlazado de MSDN, parece que el formato "g" debería funcionar.

dateString = "15/06/2008 08:30"; 
format = "g"; 
CultureInfo provider = new CultureInfo("fr-FR"); 
DateTime result = DateTime.ParseExact(dateString, format, provider); 
+0

El problema es que NO sé el formato. Literalmente estoy analizando millones de fechas de correos electrónicos. Déjame probar tu respuesta. – Paparazzi

+1

Si no conoce el formato, tendrá problemas con la precisión, ya que el 10/11/2008 podría significar el 11 de octubre de 2008 o el 10 de noviembre de 2008. Ambos formatos de fecha son bastante populares. – Kibbee

+0

Pero puedo vivir con información inexacta pero consistente. Esto es para enhebrar correos electrónicos. Preferiría exacto. – Paparazzi

Cuestiones relacionadas