Ricerca…


Osservazioni

A partire da Java 8, Calendar e le sue sottoclassi sono state sostituite dal pacchetto java.time e dai relativi pacchetti secondari . Dovrebbero essere preferiti, a meno che un'API legacy non richieda Calendar.

Creazione di oggetti del calendario

Calendar oggetti del Calendar possono essere creati usando getInstance() o usando il costruttore GregorianCalendar .

È importante notare che i mesi in Calendar sono a base zero, il che significa che JANUARY è rappresentato da un valore int 0. Per fornire un codice migliore, utilizzare sempre le costanti del Calendar , ad esempio Calendar.JANUARY per evitare equivoci.

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

Nota : usa sempre le costanti del mese: la rappresentazione numerica è fuorviante , ad esempio Calendar.JANUARY ha il valore 0

Aumentare / diminuire i campi del calendario

add() e roll() possono essere usati per aumentare / diminuire i campi del Calendar .

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

Il metodo add() effetto su tutti i campi e si comporta in modo efficace se uno dovesse aggiungere o sottrarre date effettive dal calendario

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

L'operazione sopra riportata rimuove sei mesi dal calendario, riportandoci al 30 settembre 2015.

Per cambiare un particolare campo senza influenzare gli altri campi, usa roll() .

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

L'operazione sopra riportata rimuove sei mesi dal mese corrente, quindi il mese viene identificato come settembre. Nessun altro campo è stato modificato; l'anno non è cambiato con questa operazione.

Trovare AM / PM

Con la classe Calendar è facile trovare AM o PM.

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

Sottrai i calendari

Per ottenere una differenza tra due Calendar , usa il metodo 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
Autorizzato sotto CC BY-SA 3.0
Non affiliato con Stack Overflow