Legacy Calendar

Description

Calendar is an abstract class. GregorianCalendar class extends Calendar class.

Constructor

The GregorianCalendar class has a default constructor, which create an object to represent the current datetime.

GregorianCalendar class also defines constructors we can use to create a specific date.

We can also create date in a particular time zone.


import java.util.Calendar;
import java.util.GregorianCalendar;
import java.util.TimeZone;
//  ww w . j  av  a  2  s  .c  o m
public class Main {
  public static void main(String[] args) {
    // Get the current date in the system default time zone
    GregorianCalendar currentDate = new GregorianCalendar();
    System.out.println(currentDate.getTime());
    // Get GregorianCalendar object representing March 21, 2014 07:30:45 AM
    GregorianCalendar someDate = new GregorianCalendar(2014, Calendar.MARCH,
        21, 7, 30, 45);
    System.out.println(someDate.getTime());
    // Get Indian time zone, which is GMT+05:30
    TimeZone indianTZ = TimeZone.getTimeZone("GMT+05:30");
    GregorianCalendar indianDate = new GregorianCalendar(indianTZ);
    System.out.println(indianDate.getTime());
  }

}

The code above generates the following result.

Field

The month part of a date ranges from 0 to 11. January is 0, February is 1, and so on.

get() with requested field returns the value of a field in a datetime.


import java.util.Calendar;
import java.util.GregorianCalendar;
//from w  w w.  ja v  a2s. c o m
public class Main {
  public static void main(String[] args) {
    GregorianCalendar gc = new GregorianCalendar();
    // current year value
    int year = gc.get(Calendar.YEAR);
    System.out.println(year);
    // current month value
    int month = gc.get(Calendar.MONTH);
    System.out.println(month);
    // day of month
    int day = gc.get(Calendar.DAY_OF_MONTH);
    System.out.println(day);
    // hour value
    int hour = gc.get(Calendar.HOUR);
    System.out.println(hour);
    // minute value
    int minute = gc.get(Calendar.MINUTE);
    System.out.println(minute);
    // second values
    int second = gc.get(Calendar.SECOND);
    System.out.println(second);
  }

}

The code above generates the following result.

add()

add() adds an value to a date. The amount may be negative or positive. The Calendar knows how to adjust.


import java.util.Calendar;
import java.util.GregorianCalendar;
// ww  w.j av a 2 s. c  o  m
public class Main {
  public static void main(String[] args) {
    GregorianCalendar gc  = new GregorianCalendar(2014, Calendar.DECEMBER,  1);
    gc.add(Calendar.MONTH,  5);
    System.out.println(gc.getTime());
  }
}

The code above generates the following result.

roll()

roll() adds a amount to the specified calendar field without changing larger fields.

It is an overloaded method.


void  roll(int field, int amount)
void  roll(int field, boolean up)

Suppose we have a GregorianCalendar set to August 31, 1999. Calling roll(Calendar.MONTH, 8) sets the calendar to April 30, 1999. DAY_OF_MONTH field cannot be 31 in the month April. DAY_OF_MONTH is set to the closest possible value, 30. The YEAR field maintains the value of 1999 because it is a larger field than MONTH.

roll(Calendar.MONTH, 1) is the same as roll(Calendar. MONTH, true).

roll(Calendar.MONTH, -1) is the same as roll(Calendar.MONTH, false).


import java.util.Calendar;
import java.util.GregorianCalendar;
/*  ww w .  ja va2  s  . co m*/
public class Main {
  public static void main(String[] args) {
    GregorianCalendar gc = new GregorianCalendar();
    System.out.println("Current  Date: " + gc.getTime());
    // Add 1 year 
    gc.add(Calendar.YEAR, 1);
    System.out.println(gc.getTime());

    // Add 15 days 
    gc.add(Calendar.DATE, 15);
    System.out.println(gc.getTime());
  }
}




















Home »
  Java Date Time »
    Tutorial »




Java Date Time Tutorial