2011-10-05 38 views
5
 Calendar calendar = Calendar.getInstance(); 
    calendar.set(calendar.HOUR, 8); 
    calendar.set(calendar.MINUTE, 45); 
    calendar.set(calendar.SECOND, 00); 

    Date d = calendar.getTime(); 

    System.out.println(d); 

de salida es: Mar Nov 05 20:45:00 BST 2011Fecha d = Calendar.getTime() devuelve una hora incorrecta?

¿Puede alguien ayudarme con qué es esto?

+0

¿Cuál espera que sea la salida? – Raedwald

Respuesta

9

Calendar.HOUR se usa para configurar la hora en un reloj de 12 horas.

En otras palabras, usted haga configure el Calendar a 20:45. Son las 8:45 PM.

Use Calendar.HOUR_OF_DAY para establecer el valor del reloj de 24 horas.

9

Claro, está configurando Calendar.HOUR que representa el 1-12 "hora de medio día". Debería utilizar HOUR_OF_DAY que es el valor 0-23 durante todo el día:

calendar.set(Calendar.HOUR_OF_DAY, 8); 

Como alternativa, utilice Joda Time que es una API mucho más agradable fecha/hora :)

Como acotación al margen, por favor no haga referencia a miembros estáticos a través de referencias ... le causará dolor cuando llame al someOtherThread.sleep(...) y su hilo actual duerme ...

Cuestiones relacionadas