Java Language
Kalender en zijn subklassen
Zoeken…
Opmerkingen
Vanaf Java 8 zijn Calendar
en de subklassen vervangen door het java.time- pakket en de subpakketten . Ze hebben de voorkeur, tenzij een oude API Agenda vereist.
Agenda-objecten maken
Calendar
kunnen worden gemaakt met getInstance()
of met de constructor GregorianCalendar
.
Het is belangrijk op te merken dat maanden in Calendar
op nul zijn gebaseerd, wat betekent dat JANUARI wordt voorgesteld door een int
waarde 0. Gebruik voor een betere code altijd Calendar
constanten, zoals Calendar.JANUARY
om misverstanden te voorkomen.
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);
Opmerking : gebruik altijd de maandconstanten: de numerieke weergave is misleidend , bijv. Calendar.JANUARY
heeft de waarde 0
Agendavelden verhogen / verlagen
add()
en roll()
kunnen worden gebruikt om Calendar
te verhogen / verlagen.
Calendar calendar = new GregorianCalendar(2016, Calendar.MARCH, 31); // 31 March 2016
De methode add()
is van invloed op alle velden en gedraagt zich effectief als men werkelijke datums aan de kalender zou toevoegen of aftrekken
calendar.add(Calendar.MONTH, -6);
De bovenstaande bewerking verwijdert zes maanden van de kalender en brengt ons terug naar 30 september 2015.
Gebruik roll()
om een bepaald veld te wijzigen zonder de andere velden te beïnvloeden.
calendar.roll(Calendar.MONTH, -6);
De bovenstaande bewerking verwijdert zes maanden van de huidige maand , dus de maand wordt geïdentificeerd als september. Er zijn geen andere velden aangepast; het jaar is niet veranderd met deze operatie.
AM / PM zoeken
Met de kalenderklasse is het eenvoudig om AM of PM te vinden.
Calendar cal = Calendar.getInstance();
cal.setTime(new Date());
if (cal.get(Calendar.AM_PM) == Calendar.PM)
System.out.println("It is PM");
Kalenders aftrekken
Gebruik de methode getTimeInMillis()
om een verschil te krijgen tussen twee Calendar
's:
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)