Suche…


Bemerkungen

Mit Java 8 wurden Calendar und seine Unterklassen durch das Paket java.time und seine Unterpakete ersetzt. Sie sollten bevorzugt werden, es sei denn, eine ältere API erfordert einen Kalender.

Kalenderobjekte erstellen

Calendar können mit getInstance() oder mit dem Konstruktor GregorianCalendar .

Es ist wichtig zu bemerken , dass Monate im Calendar sind Null basiert, was bedeutet , dass Januar durch ein dargestellt wird int Wert 0. Um einen besseren Code zu liefern, immer verwenden Calendar Konstanten, wie Calendar.JANUARY um Missverständnisse zu vermeiden.

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);

Anmerkung : Verwenden Sie immer die Monatskonstanten: Die numerische Darstellung ist irreführend , z. B. Calendar.JANUARY hat den Wert 0

Kalenderfelder vergrößern / verkleinern

add() und roll() können Calendar vergrößert / verkleinert werden.

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

Die add() Methode wirkt sich auf alle Felder aus und verhält sich effektiv, wenn tatsächliche Daten aus dem Kalender hinzugefügt oder subtrahiert werden

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

Durch die oben genannte Operation werden sechs Monate aus dem Kalender entfernt und wir kehren zum 30. September 2015 zurück.

Um ein bestimmtes Feld zu ändern, ohne die anderen Felder zu beeinflussen, verwenden Sie roll() .

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

Die obige Operation entfernt sechs Monate aus dem aktuellen Monat , sodass der Monat als September bezeichnet wird. Es wurden keine anderen Felder angepasst. Das Jahr hat sich bei dieser Operation nicht geändert.

Suche nach AM / PM

Mit der Kalender-Klasse können Sie AM oder PM leicht finden.

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

Kalender abziehen

Verwenden Sie die getTimeInMillis() Methode, um einen Unterschied zwischen zwei Calendar :

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
Lizenziert unter CC BY-SA 3.0
Nicht angeschlossen an Stack Overflow