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)


Modified text is an extract of the original Stack Overflow Documentation
Licensierat under CC BY-SA 3.0
Inte anslutet till Stack Overflow