2011-08-29 9 views
27

Tengo un SimpleDateFormat para analizar una String en un Date:SimpleDateFormat 24h

SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd'T'hh:mm:ssZ"); 

Cuando estoy analizar esto:

format.parse("2011-08-29T12:44:00+0200"); 

El resultado será, cuando se utiliza Date.toLocaleString:

29 aug. 2011 00:44:00

Esto debe ser por supuesto:

29 aug. 2011 12:44:00

Y cuando estoy analizar esto:

format.parse("2011-08-29T13:44:00+0200"); 

A continuación, el resultado es el esperado:

29 aug. 2011 13:44:00

¿Cómo puedo solucionar esto?

Respuesta

92

Use HH instead of hh for the hours pattern:

H Hour in day (0-23) Number 0 
k Hour in day (1-24) Number 24 
K Hour in am/pm (0-11) Number 0 
h Hour in am/pm (1-12) Number 12 
+0

Ah, gracias. Es una verdadera diversión cuando pasas media hora buscando una solución y es esto. (: – nhaarman

+1

Está en el Javadoc para SimpleDateFormat ;-) – C0deAttack

Cuestiones relacionadas