public class GregorianCalendar
extends Calendar
java.lang.Object | ||
↳ | java.util.Calendar | |
↳ | java.util.GregorianCalendar |
GregorianCalendar
是的具体子 Calendar
,并提供了世界上大多数国家使用的标准日历系统。
GregorianCalendar
是一种混合日历,支持Julian和Gregorian日历系统,并支持单一的不连续性,默认情况下,公历对应于公历(1582年10月15日在某些国家,后来在其他国家)。 调用者可以通过调用setGregorianChange()
来更改转换日期。
从历史上看,在那些首先采用公历的国家,1582年10月4日(朱利安)于1582年10月15日(格里高利)之后。 这个日历正确地模拟这个。 在公历转换之前, GregorianCalendar
执行Julian日历。 格里历和儒略历之间的唯一区别是闰年规则。 朱利安历法规定了每四年的闰年,而公历年则忽略了不能被400整除的世纪年。
GregorianCalendar
实现proleptic格里高利历和罗马儒略历。 也就是说,日期的计算是通过将现有规则无限期地向前和向后推断。 因此,所有年份都可以使用GregorianCalendar
来产生有意义且一致的结果。 然而,使用GregorianCalendar
获得的日期GregorianCalendar
是准确的,只有从公元4年3月1日开始,现代儒略日历规则才被采用。 在此之前,闰年规则不规则地适用,并且在公元前45年之前,朱利安日历甚至不存在。
在公历之前,元旦是3月25日。为避免混淆,该日历始终使用1月1日。如果需要,格里高利转换之前的日期和1月1日和3月24日。
为WEEK_OF_YEAR
字段计算的值范围从1到53.日历年的第一周是从getFirstDayOfWeek()
开始的最早的七天期间,其中包含至少getMinimalDaysInFirstWeek()
天。 因而它取决于的值getMinimalDaysInFirstWeek()
, getFirstDayOfWeek()
,和一周的一月的一年1周和下一年的1周(不包括)顺序地被编号为2至52或53(除了间1.周一天参与Julian-Gregorian过渡的年份)。
的getFirstDayOfWeek()
个getMinimalDaysInFirstWeek()
值构建在使用区域设置相关的资源初始化GregorianCalendar
。 The week determination is compatible与ISO 8601标准,当getFirstDayOfWeek()
是MONDAY
和getMinimalDaysInFirstWeek()
是4时,这些值用于首选标准区域。 这些值可以通过调用setFirstDayOfWeek()
和setMinimalDaysInFirstWeek()
来明确设置。
A week year与WEEK_OF_YEAR
周期同步。 第一周和最后一周(含)之间的所有星期具有相同的周年价值。 因此,一周的第一天和最后一天可能会有不同的日历年度值。
例如,1998年1月1日是星期四。 如果getFirstDayOfWeek()
是MONDAY
和getMinimalDaysInFirstWeek()
是4(符合ISO 8601标准兼容设置),那么1998年第一周从1997年12月29日开始,到1998年1月4日结束。周年是1998年,为1997历年的最后三天。但是,如果getFirstDayOfWeek()
是SUNDAY
,那么1998年第一周从1998年1月4日开始,到1998年1月10日结束; 1998年的前三天是1997年第53周的一部分,他们的周年是1997年。
为WEEK_OF_MONTH
字段计算的值范围为0到6.一个月的第1周(具有WEEK_OF_MONTH = 1
)是最早的一组,该月的至少getMinimalDaysInFirstWeek()
个连续日,终止于getFirstDayOfWeek()
前getFirstDayOfWeek()
。 与一年的第1周不同,一个月的第1周可能短于7天,不需要从getFirstDayOfWeek()
开始,也不包括上个月的天数。 第1周前一个月的天数为WEEK_OF_MONTH
。
例如,如果 getFirstDayOfWeek()
是 SUNDAY
和 getMinimalDaysInFirstWeek()
是4,那么1998年1月的第一周是1月4日星期日到1月10日星期六。这些日子的 WEEK_OF_MONTH
是1.星期一从1月1日到星期六有1 WEEK_OF_MONTH
为0.如果 getMinimalDaysInFirstWeek()
更改为3,则1月1日至1月3日的 WEEK_OF_MONTH
为1。
clear
方法设置未定义的日历字段。 GregorianCalendar
如果其值未定义,则为每个日历字段使用以下默认值。
Field |
Default Value |
---|---|
ERA |
AD |
YEAR |
1970 |
MONTH |
JANUARY |
DAY_OF_MONTH |
1 |
DAY_OF_WEEK |
the first day of week |
WEEK_OF_MONTH |
0 |
DAY_OF_WEEK_IN_MONTH |
1 |
AM_PM |
AM |
HOUR, HOUR_OF_DAY, MINUTE, SECOND, MILLISECOND |
0 |
例:
// 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 Saving 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
也可以看看:
Constants |
|
---|---|
int |
AD 指示共同时代(Anno Domini),也被称为CE的 |
int |
BC
|
Inherited constants |
---|
From class java.util.Calendar
|
Inherited fields |
---|
From class java.util.Calendar
|
Public constructors |
|
---|---|
GregorianCalendar() 使用缺省语言环境的默认时区中的当前时间构造默认 |
|
GregorianCalendar(TimeZone zone) 根据给定时区中的当前时间和默认语言环境构造一个 |
|
GregorianCalendar(Locale aLocale) 根据给定语言环境的默认时区中的当前时间构造一个 |
|
GregorianCalendar(TimeZone zone, Locale aLocale) 基于给定语言环境给定时区中的当前时间构造 |
|
GregorianCalendar(int year, int month, int dayOfMonth) 使用缺省区域设置在默认时区中设置的给定日期构造 |
|
GregorianCalendar(int year, int month, int dayOfMonth, int hourOfDay, int minute) 使用默认语言环境为默认时区设置的给定日期和时间构造一个 |
|
GregorianCalendar(int year, int month, int dayOfMonth, int hourOfDay, int minute, int second) 使用默认语言环境为默认时区设置的给定日期和时间构造GregorianCalendar。 |
Public methods |
|
---|---|
void |
add(int field, int amount) 根据日历的规则,将指定(签名)的时间量添加到给定的日历字段。 |
Object |
clone() 创建并返回此对象的副本。 |
boolean |
equals(Object obj) 将此 |
int |
getActualMaximum(int field) 返回此日历字段可能有,考虑到给定的时间值和的当前值中的最大值 |
int |
getActualMinimum(int field) 返回此日历字段可能有,考虑到给定的时间值和的当前值的最小值 |
int |
getGreatestMinimum(int field) 返回此 |
final Date |
getGregorianChange() 获取公历日历更改日期。 |
int |
getLeastMaximum(int field) 返回此 |
int |
getMaximum(int field) 返回此 |
int |
getMinimum(int field) 返回此 |
TimeZone |
getTimeZone() 获取时区。 |
int |
getWeekYear() 返回此 GregorianCalendar表示的 |
int |
getWeeksInWeekYear() 返回周在数量 week year由这代表 |
int |
hashCode() 为此 |
boolean |
isLeapYear(int year) 确定给定年份是否为闰年。 |
final boolean |
isWeekDateSupported() 退货 |
void |
roll(int field, boolean up) 在给定时间字段上添加或减去(上/下)单个时间单位而不改变更大的字段。 |
void |
roll(int field, int amount) 将已签名的金额添加到指定的日历字段,而不更改较大的字段。 |
void |
setGregorianChange(Date date) 设置更改日期 |
void |
setTimeZone(TimeZone zone) 使用给定的时区值设置时区。 |
void |
setWeekDate(int weekYear, int weekOfYear, int dayOfWeek) 设置此 |
Protected methods |
|
---|---|
void |
computeFields() 将时间值(毫秒偏移量从 Epoch )转换为日历字段值。 |
void |
computeTime() 将日历字段值转换为时间值(距离 Epoch的毫秒偏移量)。 |
Inherited methods |
|
---|---|
From class java.util.Calendar
|
|
From class java.lang.Object
|
|
From interface java.lang.Comparable
|
int AD
ERA
字段的值表示共同时代(Anno Domini),也被称为CE。 从BC
到AD
的过渡年AD
是......,2 BC,1 BC,1 AD,2 AD,......
也可以看看:
常数值:1(0x00000001)
int BC
ERA
字段的值表示共同时代之前(基督之前)的时期,也被称为BCE。 从BC
到AD
的过渡年AD
是...,2 BC,1 BC,1 AD,2 AD,...
也可以看看:
常量值:0(0x00000000)
GregorianCalendar ()
使用缺省语言环境的默认时区中的当前时间构造默认 GregorianCalendar
。
GregorianCalendar (TimeZone zone)
根据给定时区中的当前时间和默认语言环境构造一个 GregorianCalendar
。
Parameters | |
---|---|
zone |
TimeZone : the given time zone. |
GregorianCalendar (Locale aLocale)
根据给定语言环境的默认时区中的当前时间构造 GregorianCalendar
。
Parameters | |
---|---|
aLocale |
Locale : the given locale. |
GregorianCalendar (TimeZone zone, Locale aLocale)
基于给定语言环境给定时区中的当前时间构造一个 GregorianCalendar
。
Parameters | |
---|---|
zone |
TimeZone : the given time zone. |
aLocale |
Locale : the given locale. |
GregorianCalendar (int year, int month, int dayOfMonth)
使用缺省区域设置在默认时区中设置的给定日期构造 GregorianCalendar
。
Parameters | |
---|---|
year |
int : the value used to set the YEAR calendar field in the calendar. |
month |
int : the value used to set the MONTH calendar field in the calendar. Month value is 0-based. e.g., 0 for January. |
dayOfMonth |
int : the value used to set the DAY_OF_MONTH calendar field in the calendar. |
GregorianCalendar (int year, int month, int dayOfMonth, int hourOfDay, int minute)
使用默认语言环境为默认时区设置的给定日期和时间构造一个 GregorianCalendar
。
Parameters | |
---|---|
year |
int : the value used to set the YEAR calendar field in the calendar. |
month |
int : the value used to set the MONTH calendar field in the calendar. Month value is 0-based. e.g., 0 for January. |
dayOfMonth |
int : the value used to set the DAY_OF_MONTH calendar field in the calendar. |
hourOfDay |
int : the value used to set the HOUR_OF_DAY calendar field in the calendar. |
minute |
int : the value used to set the MINUTE calendar field in the calendar. |
GregorianCalendar (int year, int month, int dayOfMonth, int hourOfDay, int minute, int second)
使用默认语言环境为默认时区设置的给定日期和时间构造GregorianCalendar。
Parameters | |
---|---|
year |
int : the value used to set the YEAR calendar field in the calendar. |
month |
int : the value used to set the MONTH calendar field in the calendar. Month value is 0-based. e.g., 0 for January. |
dayOfMonth |
int : the value used to set the DAY_OF_MONTH calendar field in the calendar. |
hourOfDay |
int : the value used to set the HOUR_OF_DAY calendar field in the calendar. |
minute |
int : the value used to set the MINUTE calendar field in the calendar. |
second |
int : the value used to set the SECOND calendar field in the calendar. |
void add (int field, int amount)
根据日历的规则,将指定(签名)的时间量添加到给定的日历字段。
添加规则1 。 值field
通话减去的值之后field
呼叫之前是amount
,模内所出现的任何溢出field
。 当字段值超出其范围时会发生溢出,因此,下一个较大的字段会递增或递减,并将字段值调整回其范围。
添加规则2 。 如果一个较小的场预计是不变的,但由于field
变化后其最小值或最大值发生变化,它不可能与先前的值相等,则其值会调整为尽可能接近其预期值值。 较小的字段代表较小的时间单位。 HOUR
是比DAY_OF_MONTH
小的字段。 没有对不期望不变的小字段进行调整。 日历系统确定哪些字段预期是不变的。
Parameters | |
---|---|
field |
int : the calendar field. |
amount |
int : the amount of date or time to be added to the field. |
Throws | |
---|---|
IllegalArgumentException |
if field is ZONE_OFFSET , DST_OFFSET , or unknown, or if any calendar fields have out-of-range values in non-lenient mode. |
boolean equals (Object obj)
将此GregorianCalendar
与指定的Object
。 结果为true
当且仅当参数是一个GregorianCalendar
对象,该对象表示与该对象相同的Calendar
参数和公历更改日期下的相同时间值(与Epoch的毫秒偏移量)。
Parameters | |
---|---|
obj |
Object : the object to compare with. |
Returns | |
---|---|
boolean |
true if this object is equal to obj ; false otherwise. |
也可以看看:
int getActualMaximum (int field)
返回此日历字段可能有,考虑到给定的时间值和的当前值中的最大值getFirstDayOfWeek
, getMinimalDaysInFirstWeek
, getGregorianChange
和getTimeZone
方法。 例如,如果此实例的日期为2004年2月1日,则DAY_OF_MONTH
字段的实际最大值为29,因为2004年是闰年,如果此实例的日期为2005年2月1日,则为28。
此方法基于YEAR
(日历年)值计算最大值WEEK_OF_YEAR
,而不是week year 。 请致电getWeeksInWeekYear()
,在此GregorianCalendar
的WEEK_OF_YEAR
中获取最大值GregorianCalendar
。
Parameters | |
---|---|
field |
int : the calendar field |
Returns | |
---|---|
int |
the maximum of the given field for the time value of this GregorianCalendar |
int getActualMinimum (int field)
返回此日历字段可能有,考虑到给定的时间值和的当前值的最小值 getFirstDayOfWeek
, getMinimalDaysInFirstWeek
, getGregorianChange
和 getTimeZone
方法。
例如,如果公历的更改日期是1970年1月10日,而此GregorianCalendar
的日期是1970年1月20日,则DAY_OF_MONTH
的实际最小值为10,因为1970年1月10日的上一个日期是1996年12月27日在朱利安日历中)。 因此,1969年12月28日至1970年1月9日不存在。
Parameters | |
---|---|
field |
int : the calendar field |
Returns | |
---|---|
int |
the minimum of the given field for the time value of this GregorianCalendar |
int getGreatestMinimum (int field)
返回此GregorianCalendar
实例的给定日历字段的最大最小值。 最高的最小值被定义为返回的最大价值getActualMinimum(int)
任何可能的时间值,同时考虑到的当前值getFirstDayOfWeek
, getMinimalDaysInFirstWeek
, getGregorianChange
和getTimeZone
方法。
Parameters | |
---|---|
field |
int : the calendar field. |
Returns | |
---|---|
int |
the highest minimum value for the given calendar field. |
Date getGregorianChange ()
获取公历日历更改日期。 这是从朱利安日期切换到阳历日期的时刻。 默认是1582年10月15日(格里高利)。 在此之前,日期将在Julian日历中。
Returns | |
---|---|
Date |
the Gregorian cutover date for this GregorianCalendar object. |
int getLeastMaximum (int field)
返回此GregorianCalendar
实例的给定日历字段的最小最大值。 的最低的最大值被定义为通过返回最小值getActualMaximum(int)
任何可能的时间值,同时考虑到的电流值getFirstDayOfWeek
, getMinimalDaysInFirstWeek
, getGregorianChange
和getTimeZone
方法。
Parameters | |
---|---|
field |
int : the calendar field |
Returns | |
---|---|
int |
the lowest maximum value for the given calendar field. |
int getMaximum (int field)
返回此GregorianCalendar
实例的给定日历字段的GregorianCalendar
。 最大值被定义为通过返回的最大值get
方法为任何可能的时间值,同时考虑到的电流值getFirstDayOfWeek
, getMinimalDaysInFirstWeek
, getGregorianChange
和getTimeZone
方法。
Parameters | |
---|---|
field |
int : the calendar field. |
Returns | |
---|---|
int |
the maximum value for the given calendar field. |
int getMinimum (int field)
返回此GregorianCalendar
实例的给定日历字段的GregorianCalendar
。 最小值被定义为通过返回最小值get
方法为任何可能的时间值,同时考虑到的电流值getFirstDayOfWeek
, getMinimalDaysInFirstWeek
, getGregorianChange
和getTimeZone
方法。
Parameters | |
---|---|
field |
int : the calendar field. |
Returns | |
---|---|
int |
the minimum value for the given calendar field. |
TimeZone getTimeZone ()
获取时区。
Returns | |
---|---|
TimeZone |
the time zone object associated with this calendar. |
int getWeekYear ()
返回由此GregorianCalendar表示的GregorianCalendar
。 在1周到周的最大周数之间的周期中的日期具有与YEAR
(日历年)值之前或之后的一年相同的周年价值。
此方法在计算 complete()
之前调用 complete()
。
Returns | |
---|---|
int |
the week year represented by this GregorianCalendar . If the ERA value is BC , the year is represented by 0 or a negative number: BC 1 is 0, BC 2 is -1, BC 3 is -2, and so on. |
Throws | |
---|---|
IllegalArgumentException |
if any of the calendar fields is invalid in non-lenient mode. |
int getWeeksInWeekYear ()
返回周在数量 week year由这代表 GregorianCalendar
。
例如,如果此 GregorianCalendar
的日期为2008年12月31日,日期为 the ISO 8601 compatible setting ,则此方法将在2008年12月29日至2010年1月3日期间返回53,而 getActualMaximum(WEEK_OF_YEAR)
将返回52,期间为2007年12月31日至12月28日,2008年。
Returns | |
---|---|
int |
the number of weeks in the week year. |
int hashCode ()
为此 GregorianCalendar
对象生成哈希码。
Returns | |
---|---|
int |
a hash code value for this object. |
boolean isLeapYear (int year)
确定给定年份是否为闰年。 如果给定的年份是闰年,则返回true
。 要指定BC年数,必须给出1 - year number
。 例如,BC 4年被指定为-3。
Parameters | |
---|---|
year |
int : the given year. |
Returns | |
---|---|
boolean |
true if the given year is a leap year; false otherwise. |
boolean isWeekDateSupported ()
退货 true
表明此 GregorianCalendar
支持周日期。
Returns | |
---|---|
boolean |
true (always) |
void roll (int field, boolean up)
在给定时间字段上添加或减去(上/下)单个时间单位而不改变更大的字段。
例如 :考虑一个 GregorianCalendar
最初被设置为1999调用12月31日, roll(Calendar.MONTH, true)
套日历至1999年1月31日,该 YEAR
场是不变的,因为它比一个更大的领域 MONTH
。
Parameters | |
---|---|
field |
int : the time field. |
up |
boolean : indicates if the value of the specified calendar field is to be rolled up or rolled down. Use true if rolling up, false otherwise. |
Throws | |
---|---|
IllegalArgumentException |
if field is ZONE_OFFSET , DST_OFFSET , or unknown, or if any calendar fields have out-of-range values in non-lenient mode. |
也可以看看:
void roll (int field, int amount)
将已签名的金额添加到指定的日历字段,而不更改较大的字段。 负滚动量意味着从字段中减去而不改变较大的字段。 如果指定的金额为0,则此方法不执行任何操作。
此方法在添加金额前会调用complete()
,以便所有日历字段都标准化。 如果在非宽松模式下有任何日历字段超出范围值,则会抛出IllegalArgumentException
。
例如 :考虑一个GregorianCalendar
最初被设置为1999调用8月31日roll(Calendar.MONTH, 8)
套日历至1999年 4月30日。 使用GregorianCalendar
,该DAY_OF_MONTH
场不能在一个月四月是31。 DAY_OF_MONTH
被设置为最接近的可能值, YEAR
字段保持1999的值,因为它的字段大于MONTH
。
例如 :考虑最初设置为1999年6月6日星期日的GregorianCalendar
调用roll(Calendar.WEEK_OF_MONTH, -1)
将日历设置为1999年6月1日星期二,而调用add(Calendar.WEEK_OF_MONTH, -1)
将日历设置为1999年5月30日星期日。这是因为滚动规则会施加一个附加约束:该MONTH
当不能改变WEEK_OF_MONTH
卷。 结合添加规则1,结果日期必须在6月1日星期二到6月5日星期六之间。根据添加规则2,将DAY_OF_WEEK
(在更改WEEK_OF_MONTH
时不变)设置为星期二,即与星期日最接近的可能值(其中周日是本周的第一天)。
Parameters | |
---|---|
field |
int : the calendar field. |
amount |
int : the signed amount to add to field . |
Throws | |
---|---|
IllegalArgumentException |
if field is ZONE_OFFSET , DST_OFFSET , or unknown, or if any calendar fields have out-of-range values in non-lenient mode. |
void setGregorianChange (Date date)
设置更改日期GregorianCalendar
。 这是从朱利安日期切换到阳历日期的时刻。 默认是1582年10月15日(格里高利)。 在此之前,日期将在Julian日历中。
要获取纯朱利安日历,请将更改日期设置为Date(Long.MAX_VALUE)
。 要获取纯公历日历,请将更改日期设置为Date(Long.MIN_VALUE)
。
Parameters | |
---|---|
date |
Date : the given Gregorian cutover date. |
void setTimeZone (TimeZone zone)
使用给定的时区值设置时区。
Parameters | |
---|---|
zone |
TimeZone : the given time zone. |
void setWeekDate (int weekYear, int weekOfYear, int dayOfWeek)
设置此GregorianCalendar
由日期符给出的日期- weekYear
, weekOfYear
,并dayOfWeek
。 weekOfYear
遵循WEEK_OF_YEAR
numbering 。 dayOfWeek
值必须是DAY_OF_WEEK
值之一: SUNDAY
到SATURDAY
。
请注意,数字星期表示法与ISO 8601标准不同,并且当 getFirstDayOfWeek()
为 MONDAY
和 getMinimalDaysInFirstWeek()
为4时, weekOfYear
编号与标准兼容。
与 set
方法不同,所有日历字段和时间瞬间值都是在返回时计算的。
如果 weekOfYear
超出有效周的年范围在 weekYear
,该 weekYear
个 weekOfYear
值在宽松模式调整,或 IllegalArgumentException
在非宽松的模式抛出。
Parameters | |
---|---|
weekYear |
int : the week year |
weekOfYear |
int : the week number based on weekYear |
dayOfWeek |
int : the day of week value: one of the constants for the DAY_OF_WEEK field: SUNDAY , ..., SATURDAY . |
Throws | |
---|---|
IllegalArgumentException |
if any of the given date specifiers is invalid, or if any of the calendar fields are inconsistent with the given date specifiers in non-lenient mode |
void computeFields ()
将时间值(毫秒偏移量从Epoch )转换为日历字段值。 时间不首先重新计算; 重新计算时间,然后在字段中调用complete
方法。
也可以看看:
void computeTime ()
将日历字段值转换为时间值(距离 Epoch的毫秒偏移量)。
Throws | |
---|---|
IllegalArgumentException |
if any calendar fields are invalid. |