comment créer un Java objet Date de minuit aujourd'hui et de demain minuit?

Dans mon code j'ai besoin de trouver toutes mes choses qui s'est passé aujourd'hui. J'ai donc besoin de comparer des dates à partir d'aujourd'hui à 00:00 (minuit tôt ce matin) à 12:00 (minuit ce soir).

Je sais ...

Date today = new Date(); 

... me met à la droite maintenant. Et ...

Date beginning = new Date(0);

... me met à zéro heure le 1er janvier 1970. Mais ce qui est un moyen facile d'obtenir zéro de temps aujourd'hui et zéro temps demain?

Mise à JOUR; j'ai fait cela, mais il y a certainement un moyen plus facile?

Calendar calStart = new GregorianCalendar();
calStart.setTime(new Date());
calStart.set(Calendar.HOUR_OF_DAY, 0);
calStart.set(Calendar.MINUTE, 0);
calStart.set(Calendar.SECOND, 0);
calStart.set(Calendar.MILLISECOND, 0);
Date midnightYesterday = calStart.getTime();

Calendar calEnd = new GregorianCalendar();
calEnd.setTime(new Date());
calEnd.set(Calendar.DAY_OF_YEAR, calEnd.get(Calendar.DAY_OF_YEAR)+1);
calEnd.set(Calendar.HOUR_OF_DAY, 0);
calEnd.set(Calendar.MINUTE, 0);
calEnd.set(Calendar.SECOND, 0);
calEnd.set(Calendar.MILLISECOND, 0);
Date midnightTonight = calEnd.getTime();
  • À mon avis, Joda Time est plus facile, regardez à la fin de ma réponse. Si vous souhaitez utiliser java.util.Date/Calendrier que vous avez à faire de cette façon, il n'y a pas de moyen plus facile de le faire.
  • RE: timaschew commentaire à utiliser Joda-Time, sachez que le Joda-Time projet est maintenant en mode de maintenance, et conseille la migration à la java.les classes de temps.
  • Pour info, le terriblement gênant de longue date du temps des classes comme java.util.Date, java.util.Calendar, et java.text.SimpleDateFormat sont maintenant héritage, supplantée par la java.de temps les classes intégré dans Java 8 et les versions ultérieures. Voir Tutoriel Oracle.
  • C'est rarement à voir tellement imparfait des réponses à une question comme celle-ci. Je recommande la réponse par le Basilic Bourque, il est correct et compétent.
InformationsquelleAutor Robert Hume | 2011-07-27