Java: Date to GregorianCalendar and GregorianCalendar to Date Conversion

java.util.GregorianCalendar is a concrete subclass of GregorianCalendar this provides the standard calendar system used by most of the world. GregorianCalendarsupports Julian and Gregorian calendar systems with the support.

Gregorian calendar was instituted (October 15, 1582 in some countries, later in others). The cutover date may be changed by the caller by calling setGregorian

The only difference between the Gregorian and the Julian calendar is the leap year rule. The Julian calendar specifies leap years every four years, whereas the Gregorian calendar omits century years which are not divisible by 400.

GregorianCalendar getInstance method returns a Calendar object whose calendar fields have been initialized with the current date and time:

Calendar calendar= GregorianCalendar.getInstance();

In below example you will see conversion from Java Date object to Calendar and Calendar to Java Date.

Example

package com.date;

import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;
import java.util.GregorianCalendar;

public class DateString2GregarianCalendarConversion {
private static final String MAIN_DATE="2012-02-16T18:30:00.000Z";
private static final String MAIN_DATE_FORMAT="yyyy-MM-dd'T'hh:mm:ss.SSS'Z'";
private static final String DATE_FORMAT1="yyyyMMdd";
public static void main(String[] args) {
SimpleDateFormat formatter=new SimpleDateFormat(MAIN_DATE_FORMAT);
try
{
Date date =formatter.parse(MAIN_DATE);
//convert date date to calendar
Calendar calendar=GregorianCalendar.getInstance();
calendar.setTime(date);
System.out.println(calendar);

//convert GregorianCalendar to date
Date newDate=calendar.getTime();
formatter=new SimpleDateFormat(DATE_FORMAT1);
System.out.println(formatter.format(newDate));

}
catch(ParseException ex)
{
ex.printStackTrace();
}
}
}

 

Output


java.util.GregorianCalendar[time=1329445800000,areFieldsSet=true,areAllFieldsSet=true,lenient=true,zone=sun.util.calendar.ZoneInfo[id="America/Los_Angeles",offset=-28800000,dstSavings=3600000,useDaylight=true,transitions=185,lastRule=java.util.SimpleTimeZone[id=America/Los_Angeles,offset=-28800000,dstSavings=3600000,useDaylight=true,startYear=0,startMode=3,startMonth=2,startDay=8,startDayOfWeek=1,startTime=7200000,startTimeMode=0,endMode=3,endMonth=10,endDay=1,endDayOfWeek=1,endTime=7200000,endTimeMode=0]],firstDayOfWeek=1,minimalDaysInFirstWeek=1,ERA=1,YEAR=2012,MONTH=1,WEEK_OF_YEAR=7,WEEK_OF_MONTH=3,DAY_OF_MONTH=16,DAY_OF_YEAR=47,DAY_OF_WEEK=5,DAY_OF_WEEK_IN_MONTH=3,AM_PM=1,HOUR=6,HOUR_OF_DAY=18,MINUTE=30,SECOND=0,MILLISECOND=0,ZONE_OFFSET=-28800000,DST_OFFSET=0]
20120216

Reference

https://docs.oracle.com/javase/8/docs/api/java/util/GregorianCalendar.html