2012-06-27 21 views
17

Esta línea de código:DateTime.ParseExact() no asimila los valores de tiempo de 24 horas?

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

analiza un valor de "tiempo" de "12:45" muy bien, pero se produce una excepción de "13:00"

debo utilizar alguna otra CultureInfo valor, o ¿tengo que agregar un "pm" a los valores de hora por encima de 12, o ...?

El mensaje de error es: System.FormatException no se ha manejado Message = String no se ha reconocido como un DateTime válido.

+13

Use "HH: mm" para analizar los formatos de 24 horas. –

+2

+1 por usar el término "grok" en una pregunta de SO –

Respuesta

44

"hh" es el formato de reloj de 12 horas (01 a 12). Necesita usar "HH" para un reloj de 24 horas.

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

Prueba esto:

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

"u" indica formato ordenable universal.

2

Aunque Hans ya respondió su pregunta en la sección de comentarios, Here es un enlace de MSDN que describe todos los tipos de formatos de fecha utilizados con el método DateTime.ParseExact.

Cuestiones relacionadas