Buscar..


Observaciones

A partir de Java 8, Calendar y sus subclases han sido reemplazados por el paquete java.time y sus subpaquetes. Deberían ser preferibles, a menos que una API heredada requiera Calendario.

Creando objetos de calendario

Calendar objetos del Calendar se pueden crear usando getInstance() o usando el constructor GregorianCalendar .

Es importante tener en cuenta que los meses en el Calendar están basados ​​en cero, lo que significa que ENERO se representa con un valor int 0. Para proporcionar un mejor código, siempre use las constantes del Calendar , como el Calendar.JANUARY . ENERO para evitar malentendidos.

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 : utilice siempre las constantes del mes: la representación numérica es engañosa , por ejemplo, Calendar.JANUARY tiene el valor 0

Aumentar / disminuir los campos del calendario

add() y roll() se pueden usar para aumentar / disminuir los campos del Calendar .

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

El método add() afecta a todos los campos y se comporta de manera efectiva si se agregaran o restaran fechas reales del calendario

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

La operación anterior elimina seis meses del calendario y nos lleva al 30 de septiembre de 2015.

Para cambiar un campo en particular sin afectar a los otros campos, use roll() .

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

La operación anterior elimina seis meses del mes actual, por lo que el mes se identifica como septiembre. Ningún otro campo ha sido ajustado; El año no ha cambiado con esta operación.

Encontrando AM / PM

Con la clase Calendario es fácil encontrar 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");

Restando calendarios

Para obtener una diferencia entre dos Calendar , use el método 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
Licenciado bajo CC BY-SA 3.0
No afiliado a Stack Overflow