56 votes

Obtenez la date d'aujourd'hui en Java à l'heure de minuit

J'ai besoin de créer deux objets de date. Si la date et l'heure actuelles sont le 9 mars 2012 à 11h30, alors

  • l'objet date d1 devrait être 9 mars 2012 12:00 AM
  • l'objet date d2 doit contenir la date actuelle elle-même

La date ne sera pas saisie, c'est la date système.

Mise à jour :

Date dt = new Date();
System.out.print(dt.toString());

donne la date et l'heure actuelles

0voto

Basil Bourque Points 8938

Définition de "Midnight" (minuit)

Le mot "minuit" est délicat à définir.

Certains pensent que c'est le moment avant un nouveau jour commence. Essayer de représenter cela dans un logiciel est aussi délicat que le dernier moment de la journée peut toujours être subdivisé en une plus petite fraction de seconde.

Je suggère qu'une meilleure façon de penser à cela est d'obtenir le "premier moment de la journée".

Cela va dans le sens de l'approche couramment utilisée qui consiste à définir une période de temps comme étant "semi-ouverte", où le début est inclusif et la fin est exclusive. Ainsi, une journée complète commence au premier moment de la journée et s'étend jusqu'au premier moment de la journée suivante, mais sans l'inclure. suivant jour. Une journée complète ressemblerait à ceci (remarquez que la date passe du 3 au 4) :

2016-02-03T00:00:00.0-08:00[America/Los_Angeles]/2016-02-04T00:00:00.0-08:00[America/Los_Angeles]

Joda-Time

Si vous utilisez le Joda-Time bibliothèque, appeler withTimeAtStartOfDay .

Notez comment nous spécifions le fuseau horaire. S'il est omis, le fuseau horaire par défaut de la JVM est implicitement appliqué. Il est préférable d'être explicite.

DateTime todayStart = DateTime.now( DateTimeZone.forID( "America/Montreal" ) ).withTimeAtStartOfDay() ;

Si vous utilisez Java 8 ou une version ultérieure, il est préférable d'utiliser le paquet java.time intégré à Java. Voir Réponse de la fratrie par Jens Hoffman.

-1voto

user4643457 Points 15
DateFormat dateFormat = new SimpleDateFormat("yyyy/MM/dd HH:mm:ss");    
Date date = new Date(); System.out.println(dateFormat.format(date));    //2014/08/06 15:59:4

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