2011-08-29 12 views
27

Ho un SimpleDateFormat per analizzare un String in un Date:SimpleDateFormat 24h

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

Quando sto l'analisi di questo:

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

Il risultato sarà, quando si utilizza Date.toLocaleString:

29 ago. 2011 00:44:00

Questo dovrebbe essere naturalmente:

29 aug. 2011 12:44:00

E quando sono l'analisi di questo:

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

Poi il risultato è come previsto:

29 aug. 2011 13:44:00

Come posso risolvere questo?

risposta

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, grazie. Un vero divertimento quando hai passato mezz'ora a cercare una soluzione ed è questo. (: – nhaarman

+1

È in Javadoc per SimpleDateFormat ;-) – C0deAttack

Problemi correlati