2012-04-26 13 views
7

DateTime.Parse non riesce aDateTime.Parse GG/MM/AAAA 24 ORE

15/08/2000 16:58 

Qualche idea?

ho bisogno di analizzare le date e ottenere qualche internazionale.

GG/MM/AAAA non sarà flop per orologio a 24 ore

MM/DD/YYYY accetterà orologio di 24 ore

15/08/2000 16:58 analizzerà

Da la risposta del Kibbee ho guardato usando altre culture. Uso Regex per determinare se è dd/MM e, in tal caso, utilizzare culture fr-FR.

+0

Stai specificando la cultura corretta quando si chiama parse? –

+0

La mia attuale cultura è en-US. Come ho detto, alcuni sono internazionali. – Paparazzi

risposta

26

Prova DateTime.ParseExact():

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

Probabilmente si sta utilizzando DateTime.ParseExact per analizzare la data se si conosce il formato esatto in cui si prevede di inserire la data. Per i propri scopi, il seguente lavoro probabilmente funzionerà.

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); 

Modifica sopra. Cambiato da hh a HH perché HH significa 24 ore. Se non si utilizza uno zero iniziale, utilizzare semplicemente H. Per ulteriori informazioni sulla creazione delle stringhe di formato see this article.

anche dal l'articolo di MSDN collegato, sembra come se il formato "g" dovrebbe funzionare.

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

Il problema è che NON conosco il formato. Sto letteralmente analizzando milioni di date dalle e-mail. Lasciami testare la tua risposta. – Paparazzi

+1

Se non si sa che formato, si sta andando ad avere problemi con la precisione, come 10/11/2008 potrebbe o media 11 ottobre 2008 o il 10 novembre 2008. Entrambi i formati di data sono molto popolari. – Kibbee

+0

Ma posso vivere con imprecisioni ma coerenti. Questo è per il threading della posta elettronica. Preferirei accurato. – Paparazzi

Problemi correlati