当前位置: 首页>>代码示例 >>用法及示例精选 >>正文


Java Java.util.GregorianCalendar用法及代码示例


先决条件:java.util.Locale,java.util.TimeZone,Calendar.get()
GregorianCalendar是一个具体子类(它具有从接口或抽象类继承的所有成员的实现)日历它实现了我们熟悉的最广泛使用的公历。

java.util.GregorianCalendar 与 java.util.Calendar

GregorianCalendar 和 Calendar 类之间的主要区别在于,Calendar 类是抽象类,无法实例化。因此 Calendar 类的对象被初始化为:

Calendar cal = Calendar.getInstance();

这里,Calendar 类的名为 cal 的对象使用默认区域设置和时区中的当前日期和时间进行初始化。而 GregorianCalendar 类是一个具体类,可以实例化。因此 GregorianCalendar 类的对象初始化为:

GregorianCalendar gcal = new GregorianCalendar();

这里,一个名为 gcal 的对象GregorianCalendar类使用默认区域设置和时区中的当前日期和时间进行初始化。
字段定义:

GregorianCalendar Class defines two fields:
AD : referring to the common era(anno Domini)
BC : referring to before common era(Before Christ)

构造函数:有几个构造函数GregorianCalendar对象。大致分类,构造函数为GregorianCalendar或者用初始化对象用户在默认区域设置和时区中指定的日期和/或时间,或者用以下方法初始化对象用户指定的区域设置和/或时区的默认日期和时间。具体如下:

构造函数签名 说明
GregorianCalendar() 使用默认区域设置和时区中的当前日期和时间初始化对象
GregorianCalendar(int year, int month, int dayOfMonth) 使用默认语言环境和时区中作为参数传递的 date-set 初始化对象
GregorianCalendar(int year, int month, int dayOfMonth, int hours, int minutes) 使用默认区域设置和时区中作为参数传递的日期和 time-set 初始化对象
GregorianCalendar(int year, int month, int dayOfMonth, int hours, int minutes, int seconds) 使用默认区域设置和时区中作为参数传递的日期和更具体的 time-set 来初始化对象
GregorianCalendar(Locale locale) 使用默认时区中的当前日期和时间以及作为参数传递的区域设置来初始化对象
GregorianCalendar(TimeZone timeZone) 使用默认区域设置中的当前日期和时间以及作为参数传递的时区来初始化对象
GregorianCalendar(TimeZone timeZone, Locale locale) 使用区域设置中的当前日期和时间以及作为参数传递的时区来初始化对象

方法from(),toZonedDateTime(),getCalendarType()在 JDK 8 中引入。

Java


// Java Program to show that Calendar class with
// default instantiation and GregorianCalendar class
// with default constructor is basically the same as both
// return the Gregorian Calendar for the default
// date, time, time zone and locale
import java.util.Calendar;
import java.util.GregorianCalendar;
class CalendarGFG {
    public static void main(String[] args)
    {
        // Creating an object of Calendar Class
        Calendar cal = Calendar.getInstance();
        /* Creating an object of 
             GregorianCalendar Class */
        GregorianCalendar gcal = new GregorianCalendar();
        /* Displaying Current Date using
             Calendar Class */
        System.out.println("Calendar date: "
                           + cal.getTime());
        /* Displaying Current Date using
             GregorianCalendar Class */
        System.out.print("Gregorian date: "
                         + gcal.getTime());
    } // end of main function
} // end of class

输出:

Calendar date: Sat Apr 28 13:36:37 UTC 2018
Gregorian date: Sat Apr 28 13:36:37 UTC 2018

演示各种构造函数的用法的示例:
1.使用默认构造函数

Java


// Java program to demonstrate simple GregorianCalendar
// operations
import java.util.Locale;
import java.util.TimeZone;
import java.util.Calendar;
import java.util.GregorianCalendar;
public class GregorianCalendarGFG {
    public static void main(String args[])
    {
        // declaring an array to store month abbreviations
        String month[] = { "Jan", "Feb", "Mar", "Apr",
                           "May", "Jun", "Jul", "Aug",
                           "Sep", "Oct", "Nov", "Dec" };
        // declaring an array to store AM or PM
        String amPm[] = { "AM", "PM" };
        /* Creating an object of GregorianCalendar class
             using default constructor*/
        GregorianCalendar gcal = new GregorianCalendar();
        // displaying the date, time, time zone and locale
        System.out.print("Date: "
                         + month[gcal.get(Calendar.MONTH)] + " "
                         + gcal.get(Calendar.DATE) + ", "
                         + gcal.get(Calendar.YEAR) + "\n"
                         + "Time: "
                         + gcal.get(Calendar.HOUR) + ":"
                         + gcal.get(Calendar.MINUTE) + ":"
                         + gcal.get(Calendar.SECOND) + " "
                         + amPm[gcal.get(Calendar.AM_PM)] + "\n"
                         + "Time Zone: " + gcal.getTimeZone().getDisplayName()
                         + "\n"
                         + "Locale: "
                         + Locale.getDefault().getDisplayName());
    } // end of main function
} // end of class

输出:

Date: Apr 30, 2018
Time: 10:21:51 PM
Time Zone: Coordinated Universal Time
Locale: English (United States)

2. 通过传递年、月、日作为参数:

Java


// Java program to demonstrate simple GregorianCalendar
// operations
import java.util.Locale;
import java.util.TimeZone;
import java.util.Calendar;
import java.util.GregorianCalendar;
public class GregorianCalendarGFG {
    public static void main(String args[])
    {
        // declaring an array to store month abbreviations
        String month[] = { "Jan", "Feb", "Mar", "Apr",
                           "May", "Jun", "Jul", "Aug",
                           "Sep", "Oct", "Nov", "Dec" };
        // declaring an array to store AM or PM
        String amPm[] = { "AM", "PM" };
        /* Creating an object of GregorianCalendar class
           by specifying year, month and dayOfMonth */
        GregorianCalendar gcal = new GregorianCalendar(2018, 3, 30);
        // displaying the date, time, time zone and locale
        System.out.print("Date: "
                         + month[gcal.get(Calendar.MONTH)] + " "
                         + gcal.get(Calendar.DATE) + ", "
                         + gcal.get(Calendar.YEAR) + "\n"
                         + "Time: "
                         + gcal.get(Calendar.HOUR) + ":"
                         + gcal.get(Calendar.MINUTE) + ":"
                         + gcal.get(Calendar.SECOND) + " "
                         + amPm[gcal.get(Calendar.AM_PM)] + "\n"
                         + "Time Zone: " + gcal.getTimeZone().getDisplayName()
                         + "\n"
                         + "Locale: "
                         + Locale.getDefault().getDisplayName());
    } // end of main function
} // end of class

输出:

Date: Apr 30, 2018
Time: 0:0:0 AM
Time Zone: Coordinated Universal Time
Locale: English (United States)

3. 通过传递年、月、日、小时、分钟:

Java


// Java program to demonstrate simple GregorianCalendar
// operations
import java.util.Locale;
import java.util.TimeZone;
import java.util.Calendar;
import java.util.GregorianCalendar;
public class GregorianCalendarGFG {
    public static void main(String args[])
    {
        // declaring an array to store month abbreviations
        String month[] = { "Jan", "Feb", "Mar", "Apr",
                           "May", "Jun", "Jul", "Aug",
                           "Sep", "Oct", "Nov", "Dec" };
        // declaring an array to store AM or PM
        String amPm[] = { "AM", "PM" };
        /* Creating an object of GregorianCalendar class
           by specifying year, month, dayOfMonth,
           hourOfDay and minute */
        GregorianCalendar gcal = new GregorianCalendar(2018, 3, 30, 10, 21);
        // displaying the date, time, time zone and locale
        System.out.print("Date: "
                         + month[gcal.get(Calendar.MONTH)] + " "
                         + gcal.get(Calendar.DATE) + ", "
                         + gcal.get(Calendar.YEAR) + "\n"
                         + "Time: "
                         + gcal.get(Calendar.HOUR) + ":"
                         + gcal.get(Calendar.MINUTE) + ":"
                         + gcal.get(Calendar.SECOND) + " "
                         + amPm[gcal.get(Calendar.AM_PM)] + "\n"
                         + "Time Zone: " + gcal.getTimeZone().getDisplayName()
                         + "\n"
                         + "Locale: "
                         + Locale.getDefault().getDisplayName());
    } // end of main function
} // end of class

输出:

Date: Apr 30, 2018
Time: 10:21:0 AM
Time Zone: Coordinated Universal Time
Locale: English (United States)

4. 通过传递年、月、日、时、分、秒:

Java


// Java program to demonstrate simple GregorianCalendar
// operations
import java.util.Locale;
import java.util.TimeZone;
import java.util.Calendar;
import java.util.GregorianCalendar;
public class GregorianCalendarGFG {
    public static void main(String args[])
    {
        // declaring an array to store month abbreviations
        String month[] = { "Jan", "Feb", "Mar", "Apr",
                           "May", "Jun", "Jul", "Aug",
                           "Sep", "Oct", "Nov", "Dec" };
        // declaring an array to store AM or PM
        String amPm[] = { "AM", "PM" };
        /* Creating an object of GregorianCalendar class
           by specifying year, month, dayOfMonth,
           hourOfDay, minute and second */
        GregorianCalendar gcal = new GregorianCalendar(2018, 3, 30, 10, 21, 51);
        // displaying the date, time, time zone and locale
        System.out.print("Date: "
                         + month[gcal.get(Calendar.MONTH)] + " "
                         + gcal.get(Calendar.DATE) + ", "
                         + gcal.get(Calendar.YEAR) + "\n"
                         + "Time: "
                         + gcal.get(Calendar.HOUR) + ":"
                         + gcal.get(Calendar.MINUTE) + ":"
                         + gcal.get(Calendar.SECOND) + " "
                         + amPm[gcal.get(Calendar.AM_PM)] + "\n"
                         + "Time Zone: " + gcal.getTimeZone().getDisplayName()
                         + "\n"
                         + "Locale: "
                         + Locale.getDefault().getDisplayName());
    } // end of main function
} // end of class

输出:

Date: Apr 30, 2018
Time: 10:21:51 AM
Time Zone: Coordinated Universal Time
Locale: English (United States)

5. 通过传递 timeZone 作为参数:

Java


// Java program to demonstrate simple GregorianCalendar
// operations
import java.util.TimeZone;
import java.util.Locale;
import java.util.Calendar;
import java.util.GregorianCalendar;
public class GregorianCalendarTest {
    public static void main(String args[])
    {
        // declaring an array to store month abbreviations
        String month[] = { "Jan", "Feb", "Mar", "Apr",
                           "May", "Jun", "Jul", "Aug",
                           "Sep", "Oct", "Nov", "Dec" };
        // declaring an array to store AM or PM
        String amPm[] = { "AM", "PM" };
        /* Creating an object of TimeZone class to create
             an object of GregorianCalendar class to assign
             an user defined time zone (GMT + 5:30)*/
        TimeZone tz = TimeZone.getTimeZone("GMT+5:30");
        GregorianCalendar gcal = new GregorianCalendar(tz);
        // displaying the date, time, time zone and locale
        System.out.print("Date: "
                         + month[gcal.get(Calendar.MONTH)] + " "
                         + gcal.get(Calendar.DATE) + ", "
                         + gcal.get(Calendar.YEAR) + "\n"
                         + "Time: "
                         + gcal.get(Calendar.HOUR) + ":"
                         + gcal.get(Calendar.MINUTE) + ":"
                         + gcal.get(Calendar.SECOND) + " "
                         + amPm[gcal.get(Calendar.AM_PM)] + "\n"
                         + "Time Zone: " + gcal.getTimeZone().getDisplayName()
                         + "\n"
                         + "Locale: " + Locale.getDefault().getDisplayCountry());
    } // end of main function
} // end of class

输出:

Date: May 1, 2018
Time: 4:24:7 AM
Time Zone: GMT+05:30
Locale: United States

6. 通过将区域设置作为参数传递:

Java


// Java program to demonstrate simple GregorianCalendar
// operations
import java.util.TimeZone;
import java.util.Locale;
import java.util.Calendar;
import java.util.GregorianCalendar;
public class GregorianCalendarTest {
    public static void main(String args[])
    {
        // declaring an array to store month abbreviations
        String month[] = { "Jan", "Feb", "Mar", "Apr",
                           "May", "Jun", "Jul", "Aug",
                           "Sep", "Oct", "Nov", "Dec" };
        // declaring an array to store AM or PM
        String amPm[] = { "AM", "PM" };
        /* Creating an object of Locale class to create
             an object of GregorianCalendar class to assign
             an user defined locale (India)*/
        Locale l = new Locale("en", "IN");
        GregorianCalendar gcal = new GregorianCalendar(l);
        // displaying the date, time, time zone and locale
        System.out.print("Date: "
                         + month[gcal.get(Calendar.MONTH)] + " "
                         + gcal.get(Calendar.DATE) + ", "
                         + gcal.get(Calendar.YEAR) + "\n"
                         + "Time: "
                         + gcal.get(Calendar.HOUR) + ":"
                         + gcal.get(Calendar.MINUTE) + ":"
                         + gcal.get(Calendar.SECOND) + " "
                         + amPm[gcal.get(Calendar.AM_PM)] + "\n"
                         + "Time Zone: "
                         + gcal.getTimeZone().getDisplayName()
                         + "\n"
                         + "Locale: " + l.getDisplayCountry());
    } // end of main function
} // end of class

输出:

Date: Apr 30, 2018
Time: 10:58:30 PM
Time Zone: Coordinated Universal Time
Locale: India

7. 通过传递 timeZone 和 locale 作为参数:

Java


// Java program to demonstrate simple GregorianCalendar
// operations
import java.util.TimeZone;
import java.util.Locale;
import java.util.Calendar;
import java.util.GregorianCalendar;
public class GregorianCalendarTest {
    public static void main(String args[])
    {
        // declaring an array to store month abbreviations
        String month[] = { "Jan", "Feb", "Mar", "Apr",
                           "May", "Jun", "Jul", "Aug",
                           "Sep", "Oct", "Nov", "Dec" };
        // declaring an array to store AM or PM
        String amPm[] = { "AM", "PM" };
        /* Creating an object of TimeZone class and Locale
             class to create an object of GregorianCalendar
             class to assign an user defined time zone
             (GMT + 5:30) and locale (India)*/
        TimeZone tz = TimeZone.getTimeZone("GMT+5:30");
        Locale l = new Locale("en", "IN");
        GregorianCalendar gcal = new GregorianCalendar(tz, l);
        // displaying the date, time, time zone and locale
        System.out.print("Date: "
                         + month[gcal.get(Calendar.MONTH)] + " "
                         + gcal.get(Calendar.DATE) + ", "
                         + gcal.get(Calendar.YEAR) + "\n"
                         + "Time: "
                         + gcal.get(Calendar.HOUR) + ":"
                         + gcal.get(Calendar.MINUTE) + ":"
                         + gcal.get(Calendar.SECOND) + " "
                         + amPm[gcal.get(Calendar.AM_PM)] + "\n"
                         + "Time Zone: "
                         + gcal.getTimeZone().getDisplayName()
                         + "\n"
                         + "Locale: " + l.getDisplayCountry());
    } // end of main function
} // end of class

输出:

Date: May 1, 2018
Time: 4:34:59 AM
Time Zone: GMT+05:30
Locale: India

参考:
GregorianCalendar(Java 平台 SE 8) - Oracle 帮助中心



相关用法


注:本文由纯净天空筛选整理自noobhere大神的英文原创作品 Java.util.GregorianCalendar Class in Java。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。