Java Language
Kalender und seine Unterklassen
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)