137 votes

Informations sur l'heure limite Java Date

J'ai un objet Date Java contenant des informations sur la date et l'heure, par exemple 2008-01-01 13:15:00. Je veux écrire une méthode qui supprime l’information sur l’heure afin de ne garder que la date, par exemple 2008-01-01 00:00:00.

Avez-vous un pourboire? J'ai essayé de faire quelque chose comme ça

 (timestamp / (24 * 60 * 60 * 1000)) * (24 * 60 * 60 * 1000)
 

mais j'ai rencontré des problèmes avec le fuseau horaire ...

Merci de votre aide!

Marco

185voto

cletus Points 276888

La méthode recommandée pour manipuler la date / heure consiste à utiliser un objet Calendar :

 Calendar cal = Calendar.getInstance(); // locale-specific
cal.setTime(dateObject);
cal.set(Calendar.HOUR_OF_DAY, 0);
cal.set(Calendar.MINUTE, 0);
cal.set(Calendar.SECOND, 0);
cal.set(Calendar.MILLISECOND, 0);
long time = cal.getTimeInMillis();
 

168voto

A_M Points 2897

Avez-vous examiné la méthode tronquée DateUtils dans Apache Commons Lang?

 Date truncatedDate = DateUtils.truncate(new Date(), Calendar.DATE);
 

va supprimer l'élément de temps.

41voto

Brian Agnew Points 143181

Avez-vous regardé Joda ? Il est beaucoup plus facile et plus intuitive de travailler avec des dates et des heures. Par exemple vous pouvez convertir trivialement entre (dire) LocalDateTime et LocalDate objets.

par exemple (pour illustrer l'API)

LocalDate date = new LocalDateTime(milliseconds).toLocalDate()

En outre, il résout certains thread-les questions de sécurité avec la date/heure de formateurs et est fortement recommandé pour travailler avec n'importe quelle date/de l'heure des questions en Java.

27voto

jitter Points 35805
Date date = new Date();
Calendar cal = Calendar.getInstance();
cal.setTime(date);
cal.set(Calendar.HOUR_OF_DAY, 0);
cal.set(Calendar.MINUTE, 0);
cal.set(Calendar.SECOND, 0);
cal.set(Calendar.MILLISECOND, 0);
date = cal.getTime();

22voto

h7r Points 462

Avec Joda, vous pouvez facilement obtenir la date prévue.

 new DateTime (new Date ()).toDateMidnight ().toDate ()
 

Bénéficiez d'une API plus agréable.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X