Java Language
Kalender och dess underklasser
Sök…
Anmärkningar
Från Java 8 har Calendar och dess underklasser ersatts av java.time- paketet och dess subpaket. De bör föredras, såvida inte en äldre API kräver kalender.
Skapa kalenderobjekt
Calendar kan skapas med hjälp av getInstance() eller med konstruktören GregorianCalendar .
Det är viktigt att märka att månader i Calendar är nollbaserade, vilket innebär att JANUARI representeras av ett int värde 0. För att ge en bättre kod, använd alltid Calendar , som Calendar.JANUARY att undvika missförstånd.
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);
Obs : Använd alltid månadskonstanter: Den numeriska representationen är vilseledande , t.ex. Calendar.JANUARY har värdet 0
Öka / minska kalenderfält
add() och roll() kan användas för att öka / minska Calendar .
Calendar calendar = new GregorianCalendar(2016, Calendar.MARCH, 31); // 31 March 2016
Metoden add() påverkar alla fält och uppför sig effektivt om man skulle lägga till eller subtrahera faktiska datum från kalendern
calendar.add(Calendar.MONTH, -6);
Ovanstående operation tar bort sex månader från kalendern och tar oss tillbaka till 30 september 2015.
För att ändra ett visst fält utan att påverka de andra fälten, använd roll() .
calendar.roll(Calendar.MONTH, -6);
Ovanstående operation tar bort sex månader från den aktuella månaden , så månaden identifieras som september. Inga andra fält har justerats. året har inte förändrats med denna operation.
Hitta AM / PM
Med Kalenderklass är det lätt att hitta AM eller PM.
Calendar cal = Calendar.getInstance();
cal.setTime(new Date());
if (cal.get(Calendar.AM_PM) == Calendar.PM)
System.out.println("It is PM");
Dra bort kalendrar
För att få en skillnad mellan två Calendar använder getTimeInMillis() metoden 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)