当前位置 类层次 (JDK) 所有类 (JDK) 所有域和方法 (JDK)

类 java.util.GregorianCalendar

java.lang.Object
   |
   +----java.util.Calendar
           |
           +----java.util.GregorianCalendar

public class GregorianCalendar
extends Calendar

GregorianCalendarCalendar 的一个具体的子类,并提供世界上多数国家使用的 Calendar 。

标准的日历 (Gregorian)有 2 个年代,BC 和 AD。

该实现处理了一个不连续的情况,它缺省地对应于 Gregorian 日历的制定日期(在一些国家是 October 15, 1582 , 其它国家更晚些)。该转换可以由调用者改变。

在 Gregorian 日历建立之前,新年是 March 25。为了避免混乱,该日历一直使用 January 1 作为新年。如果希望日期定在 Gregorian 调整之前的 January 1 和 March 24 之间的某一天,则必须手工调整。

例子:

 // get the supported ids for GMT-08:00 (Pacific Standard Time)
 String[] ids = TimeZone.getAvailableIDs(-8 * 60 * 60 * 1000);
 // if no ids were returned, something is wrong. get out.
 if (ids.length == 0)
     System.exit(0);
  // begin output
 System.out.println("Current Time");
 // create a Pacific Standard Time time zone
 SimpleTimeZone pdt = new SimpleTimeZone(-8 * 60 * 60 * 1000, ids[0]);
 // set up rules for daylight savings time
 pdt.setStartRule(Calendar.APRIL, 1, Calendar.SUNDAY, 2 * 60 * 60 * 1000);
 pdt.setEndRule(Calendar.OCTOBER, -1, Calendar.SUNDAY, 2 * 60 * 60 * 1000);
 // create a GregorianCalendar with the Pacific Daylight time zone
 // and the current date and time
 Calendar calendar = new GregorianCalendar(pdt);
 Date trialTime = new Date();
 calendar.setTime(trialTime);
 // print out a bunch of interesting things
 System.out.println("ERA: " + calendar.get(Calendar.ERA));
 System.out.println("YEAR: " + calendar.get(Calendar.YEAR));
 System.out.println("MONTH: " + calendar.get(Calendar.MONTH));
 System.out.println("WEEK_OF_YEAR: " + calendar.get(Calendar.WEEK_OF_YEAR));
 System.out.println("WEEK_OF_MONTH: " + calendar.get(Calendar.WEEK_OF_MONTH));
 System.out.println("DATE: " + calendar.get(Calendar.DATE));
 System.out.println("DAY_OF_MONTH: " + calendar.get(Calendar.DAY_OF_MONTH));
 System.out.println("DAY_OF_YEAR: " + calendar.get(Calendar.DAY_OF_YEAR));
 System.out.println("DAY_OF_WEEK: " + calendar.get(Calendar.DAY_OF_WEEK));
 System.out.println("DAY_OF_WEEK_IN_MONTH: "
                    + calendar.get(Calendar.DAY_OF_WEEK_IN_MONTH));
 System.out.println("AM_PM: " + calendar.get(Calendar.AM_PM));
 System.out.println("HOUR: " + calendar.get(Calendar.HOUR));
 System.out.println("HOUR_OF_DAY: " + calendar.get(Calendar.HOUR_OF_DAY));
 System.out.println("MINUTE: " + calendar.get(Calendar.MINUTE));
 System.out.println("SECOND: " + calendar.get(Calendar.SECOND));
 System.out.println("MILLISECOND: " + calendar.get(Calendar.MILLISECOND));
 System.out.println("ZONE_OFFSET: "
                    + (calendar.get(Calendar.ZONE_OFFSET)/(60*60*1000)));
 System.out.println("DST_OFFSET: "
                    + (calendar.get(Calendar.DST_OFFSET)/(60*60*1000)));
 System.out.println("Current Time, with hour reset to 3");
 calendar.clear(Calendar.HOUR_OF_DAY); // so doesn't override
 calendar.set(Calendar.HOUR, 3);
 System.out.println("ERA: " + calendar.get(Calendar.ERA));
 System.out.println("YEAR: " + calendar.get(Calendar.YEAR));
 System.out.println("MONTH: " + calendar.get(Calendar.MONTH));
 System.out.println("WEEK_OF_YEAR: " + calendar.get(Calendar.WEEK_OF_YEAR));
 System.out.println("WEEK_OF_MONTH: " + calendar.get(Calendar.WEEK_OF_MONTH));
 System.out.println("DATE: " + calendar.get(Calendar.DATE));
 System.out.println("DAY_OF_MONTH: " + calendar.get(Calendar.DAY_OF_MONTH));
 System.out.println("DAY_OF_YEAR: " + calendar.get(Calendar.DAY_OF_YEAR));
 System.out.println("DAY_OF_WEEK: " + calendar.get(Calendar.DAY_OF_WEEK));
 System.out.println("DAY_OF_WEEK_IN_MONTH: "
                    + calendar.get(Calendar.DAY_OF_WEEK_IN_MONTH));
 System.out.println("AM_PM: " + calendar.get(Calendar.AM_PM));
 System.out.println("HOUR: " + calendar.get(Calendar.HOUR));
 System.out.println("HOUR_OF_DAY: " + calendar.get(Calendar.HOUR_OF_DAY));
 System.out.println("MINUTE: " + calendar.get(Calendar.MINUTE));
 System.out.println("SECOND: " + calendar.get(Calendar.SECOND));
 System.out.println("MILLISECOND: " + calendar.get(Calendar.MILLISECOND));
 System.out.println("ZONE_OFFSET: "
        + (calendar.get(Calendar.ZONE_OFFSET)/(60*60*1000))); // in hours
 System.out.println("DST_OFFSET: "
        + (calendar.get(Calendar.DST_OFFSET)/(60*60*1000))); // in hours
 

参见:
Calendar, TimeZone

变量索引

AD
对 GregorianCalendar 的有用常量。
BC
对 GregorianCalendar 的有用常量。

构造子索引

GregorianCalendar()
在缺省时区的缺省语言环境下用当前时间构造一个缺省的 GregorianCalendar 。
GregorianCalendar(int, int, int)
在缺省时区的缺省语言环境下用给出的日期设置构造一个缺省的 GregorianCalendar 。
GregorianCalendar(int, int, int, int, int)
为缺省时区的缺省语言环境下用给出的日期和时间设置构造一个 GregorianCalendar 。
GregorianCalendar(int, int, int, int, int, int)
为缺省时区在缺省语言环境下用给出的日期和时间设置构造一个 GregorianCalendar 。
GregorianCalendar(Locale)
在缺省时区用给出的语言环境构造一个基于当前时间的 GregorianCalendar 。
GregorianCalendar(TimeZone)
在给定的时区里用缺省的语言环境构造一个基于当前时间的 GregorianCalendar 。
GregorianCalendar(TimeZone, Locale)
在给定的时区里用给定的语言环境构造一个基于当前时间的 GregorianCalendar 。

方法索引

add(int, int)
覆盖 Calendar 的日期算术功能。
after(Object)
比较时间域记录。
before(Object)
比较时间域记录。
computeFields()
覆盖 Calendar 的以毫秒转换 UTC 为时间域值的功能。
computeTime()
覆盖 Calendar 的以毫秒转换时间域值为 UTC 的功能。
equals(Object)
比较该日历和指定的对象。
getGreatestMinimum(int)
返回给定域变化时的最高的最小值。
getGregorianChange()
获取 Gregorian Calendar 的更改日期。
getLeastMaximum(int)
返回给定域变化时的最低的最大值。
getMaximum(int)
返回给定域的最大值。
getMinimum(int)
返回给定域的最小值。
hashCode()
覆盖 hashCode。
isLeapYear(int)
决定给定年是否是润年。
roll(int, boolean)
覆盖 Calendar 的时间域滚动功能。
setGregorianChange(Date)
设置 GregorianCalendar 的更改日期。

变量

BC
 public static final int BC
GregorianCalendar 的有用常量。

AD
 public static final int AD
GregorianCalendar 的有用常量。


构造子

GregorianCalendar
 public GregorianCalendar()
在缺省时区的缺省语言环境下用当前时间构造一个缺省的 GregorianCalendar 。

GregorianCalendar
 public GregorianCalendar(TimeZone zone)
在给定的时区里用缺省的语言环境构造一个基于当前时间的 GregorianCalendar 。

参数:
zone - 给定的时区。
GregorianCalendar
 public GregorianCalendar(Locale aLocale)
在缺省的时区里用给定的语言环境构造一个基于当前时间的 GregorianCalendar 。

参数:
aLocale - 给定的语言环境。
GregorianCalendar
 public GregorianCalendar(TimeZone zone,
                          Locale aLocale)
在给定的时区里用给定的语言环境构造一个基于当前时间的 GregorianCalendar 。

参数:
zone - 给定的时区。
aLocale - 给定的语言环境。
GregorianCalendar
 public GregorianCalendar(int year,
                          int month,
                          int date)
在缺省时区的缺省语言环境下用给出的日期设置构造一个 GregorianCalendar 。

参数:
year - 用于设置日历中的 YEAR 时间域的值。
month - 用于设置日历中的 MONTH 时间域的值。 Month 值是基于零的。例如,0 代表 January。
date - 用于设置日历中的 DATE 时间域的值。
GregorianCalendar
 public GregorianCalendar(int year,
                          int month,
                          int date,
                          int hour,
                          int minute)
为缺省的时区在缺省语言环境下用给出的日期和时间设置构造一个 GregorianCalendar 。

参数:
year - 用于设置日历中的 YEAR 时间域的值。
month - 用于设置日历中的 MONTH 时间域的值。 Month 值是基于零的。例如,0 代表 January。
date - 用于设置日历中的 DATE 时间域的值。
hour - 用于设置日历中的 HOUR_OF_DAY 时间域的值。
minute - 用于设置日历中的 MINUTE 时间域的值。
GregorianCalendar
 public GregorianCalendar(int year,
                          int month,
                          int date,
                          int hour,
                          int minute,
                          int second)
为缺省的时区在缺省语言环境下用给出的日期和时间设置构造一个 GregorianCalendar 。

参数:
year - 用于设置日历中的 YEAR 时间域的值。
month - 用于设置日历中的 MONTH 时间域的值。 Month 值是基于零的。例如,0 代表 January。
date - 用于设置日历中的 DATE 时间域的值。
hour - 用于设置日历中的 HOUR_OF_DAY 时间域的值。
minute - 用于设置日历中的 MINUTE 时间域的值。
second - 用于设置日历中的 SECOND 时间域的值。

方法

equals
 public boolean equals(Object obj)
比较该 Calendar 和指定的对象。 结果为 true ,当且仅当参数不为 null 且参数是与该对象描述同一日历的 Calendar 对象。

参数:
obj - 比较的对象。
返回值:
如果对象相同则返回 true,否则返回 false
覆盖:
Calendar 中的 equals
before
 public boolean before(Object when)
比较时间域记录。 等价于比较转换到 UTC 的结果。

参数:
when - 与该日历比较的 Calendar 。
返回值:
为 true ,如果该 Calendar 的当前时间在 Calendar 的时间 when 之前;反之为假。
覆盖:
Calendar 中的 before
after
 public boolean after(Object when)
比较时间域记录。 等价于比较转换到 UTC 的结果。

参数:
when - 与该 Calendar 比较的 Calendar 。
返回值:
为 true ,如果该 Calendar 的当前时间在 Calendar 的时间 when 之后;反之为假。
覆盖:
Calendar 中的 after
setGregorianChange
 public void setGregorianChange(Date date)
设置 GregorianCalendar 的更改日期。 这是从 Julian 日期向 Gregorian 日期转换的时间点。缺省值是 00:00:00 当地时间,October 15, 1582。 在该时间之前的时间和日期将是 Julian 日期。

参数:
date - 给定的 Gregorian 转换日期。
getGregorianChange
 public final Date getGregorianChange()
获取 Gregorian Calendar 的更改日期。 这是从 Julian 日期向 Gregorian 日期转换的时间点。缺省值是 00:00:00 当地时间,October 15, 1582。 在该时间之前的时间和日期将是 Julian 日期。

返回值:
该日历的 Gregorian 转换时间。
isLeapYear
 public boolean isLeapYear(int year)
决定给定年是否是闰年。如果给定年限是闰年,返回 true 。

参数:
year - 给定年。
返回值:
如果给定年是闰年;反之为 false 。
computeFields
 protected void computeFields()
覆盖 Calendar 以毫秒转换 UTC 为时间域值的功能。 时间开始重新计算;为了重新计算时间和域,调用 complete 方法。

覆盖:
Calendar 中的 computeFields
参见:
complete
computeTime
 protected void computeTime()
覆盖 Calendar 以毫秒转换时间域值为 UTC 的功能。

抛出: IllegalArgumentException
如果所有域都是无效的。
覆盖:
Calendar 中的 computeTime
hashCode
 public synchronized int hashCode()
覆盖 hashCode。 为 GregorianCalendar 对象生成散列码。

覆盖:
Object 中的 hashCode
add
 public void add(int field,
                 int amount)
覆盖 Calendar 的日期算术功能。 添加指定(带符号的)数量的时间到给定的时间域,该值基于 Calendar 的规则。

参数:
field - 时间域。
amount - 添加到该域的日期和时间的数量。
抛出: IllegalArgumentException
如果给出一个未知的域。
覆盖:
Calendar 中的 add
roll
 public void roll(int field,
                  boolean up)
覆盖 Calendar 的时间域滚动功能。 在给定的时间域上滚动(向上/向下)一个单个的时间单元。

参数:
field - 时间域。
up - 指示是否向下或下上滚动域值。
抛出: IllegalArgumentException
如果给出一个未知的域值。
覆盖:
Calendar 中的 roll
getMinimum
 public int getMinimum(int field)
返回给定域的最小值。 例如,对于 Gregorian DAY_OF_MONTH, 1 请参见 Calendar.getMinimum 来获取关于参数和返回值的描述。

覆盖:
Calendar 中的 getMinimum
getMaximum
 public int getMaximum(int field)
返回给定域的最大值。 例如,对于 Gregorian DAY_OF_MONTH, 31 请参见 Calendar.getMaximum 来获取关于参数和返回值的描述。

覆盖:
Calendar 中的 getMaximum
getGreatestMinimum
 public int getGreatestMinimum(int field)
返回给定域变化时的最高的最小值。 否则与 getMinimum() 相同。对 Gregorian, 没有区别。请参见 Calendar.getGreatestMinimum ;来获取关于参数和返回值的描述。

覆盖:
Calendar 中的 getGreatestMinimum
getLeastMaximum
 public int getLeastMaximum(int field)
返回给定域变化时的最低的最大值。 否则与 getMaximum() 相同。对于 Gregorian DAY_OF_MONTH, 28 请参见 Calendar.getLeastMaximum 来获取关于参数和返回值的描述。

覆盖:
Calendar 中的 getLeastMaximum

当前位置 类层次 (JDK) 所有类 (JDK) 所有域和方法 (JDK)