2012-06-27 12 views
17

Questa riga di codice:DateTime.ParseExact() non Grok valori di tempo di 24 ore?

DateTime dt = DateTime.ParseExact(time, "hh:mm", CultureInfo.InvariantCulture); 

analizza un valore di "tempo" di "00:45" bene, ma genera un'eccezione di "13:00"

dovrei usare qualche altro CultureInfo valore, oppure ho bisogno di aggiungere un "pm" per valori di ore superiore a 12, o ...?

Il messaggio di errore è: System.FormatException non gestito Message = String non è stato riconosciuto come DateTime valido.

+13

Usa "HH: mm" per analizzare i formati di 24 ore. –

+2

+1 per l'utilizzo del termine "Grok" in una domanda SO –

risposta

44

"hh" è il formato a 12 ore (da 01 a 12). È necessario utilizzare "HH" per un orologio di 24 ore.

DateTime dt = DateTime.ParseExact(time, "HH:mm", CultureInfo.InvariantCulture); 
2

Prova questo:

DateTime dt = DateTime.ParseExact(time, "u", CultureInfo.InvariantCulture); 

"u" indica formato ordinabile universale.

2

Sebbene Hans abbia già risposto alla tua domanda nella sezione commenti, Here è un collegamento MSDN che descrive tutti i tipi di formati di data utilizzati con il metodo DateTime.ParseExact.

Problemi correlati