Recherche…


Remarques

Depuis Java 8, Calendar et ses sous-classes ont été remplacés par le package java.time et ses sous-packages. Ils devraient être préférés, sauf si une API héritée nécessite un calendrier.

Création d'objets de calendrier

Calendar objets de Calendar peuvent être créés en utilisant getInstance() ou en utilisant le constructeur GregorianCalendar .

Il est important de noter que les mois dans Calendar sont à zéro, ce qui signifie que JANUARY est représenté par une valeur int 0. Afin de fournir un meilleur code, utilisez toujours des constantes de Calendar , telles que Calendar.JANUARY pour éviter les malentendus.

Calendar calendar = Calendar.getInstance();
Calendar gregorianCalendar = new GregorianCalendar();
Calendar gregorianCalendarAtSpecificDay = new GregorianCalendar(2016, Calendar.JANUARY, 1);
Calendar gregorianCalendarAtSpecificDayAndTime = new GregorianCalendar(2016, Calendar.JANUARY, 1, 6, 55, 10);

Remarque : utilisez toujours les constantes de mois: La représentation numérique est trompeuse , par exemple Calendar.JANUARY a la valeur 0

Champs de calendrier croissants / décroissants

add() et roll() peuvent être utilisés pour augmenter / diminuer les champs du Calendar .

Calendar calendar = new GregorianCalendar(2016, Calendar.MARCH, 31); // 31 March 2016

La méthode add() affecte tous les champs et se comporte efficacement si l'on ajoutait ou soustrait des dates réelles du calendrier.

calendar.add(Calendar.MONTH, -6);

L'opération ci-dessus supprime six mois du calendrier, ce qui nous ramène au 30 septembre 2015.

Pour changer un champ particulier sans affecter les autres champs, utilisez roll() .

calendar.roll(Calendar.MONTH, -6);

L'opération ci-dessus supprime six mois du mois en cours , le mois est donc identifié en septembre. Aucun autre champ n'a été ajusté; l'année n'a pas changé avec cette opération.

Trouver AM / PM

Avec la classe Calendrier, il est facile de trouver AM ou PM.

  Calendar cal = Calendar.getInstance();
  cal.setTime(new Date());
  if (cal.get(Calendar.AM_PM) == Calendar.PM)
      System.out.println("It is PM");

Retrait des calendriers

Pour obtenir une différence entre deux Calendar , utilisez la méthode getTimeInMillis() :

Calendar c1 = Calendar.getInstance();
Calendar c2 = Calendar.getInstance();
c2.set(Calendar.DATE, c2.get(Calendar.DATE) + 1);

System.out.println(c2.getTimeInMillis() - c1.getTimeInMillis()); //outputs 86400000 (24 * 60 * 60 * 1000)


Modified text is an extract of the original Stack Overflow Documentation
Sous licence CC BY-SA 3.0
Non affilié à Stack Overflow