public class GregorianCalendar extends Calendar
GregorianCalendar是的具体子Calendar ,并提供了世界上大多数国家使用的标准日历系统。
GregorianCalendar是一个混合日历,支持朱利安和公历日历系统,并支持一个不连续性,默认情况下相当于格里高利日历(公元1582年10月15日,在一些国家,后来在其他国家)。 切换日期可能由呼叫者通过调用setGregorianChange()更改 。
历史上,1582年10月4日(朱利安)首先采用公历的那些国家,之后是1582年10月15日(格里高利)。 这个日历模型正确。 在格里高利转换之前, GregorianCalendar实现了朱利安历。 公历和儒略历的唯一区别是闰年规则。 朱利安历法每四年规定一次闰年,而公历则省略了不能被400整除的百年。
GregorianCalendar proptptic 格里高利和朱利安日历。 也就是说,日期是通过在时间上无限远地向后和向前推断当前规则来计算的。 因此, GregorianCalendar可以用于多年来产生有意义和一致的结果。 然而,使用GregorianCalendar获得的日期从公历4月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.周一天一年涉及朱利安 - 格里高利转型)。
当getFirstDayOfWeek() , 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年的第1周从1997年12月29日开始,到1998年1月4日结束。1997年是1998年1997年的最后三天然而,如果getFirstDayOfWeek()是SUNDAY ,则1998年第1周从1998年1月4日开始,1998年1月10日结束; 1998年的头三天是1997年第53周的一部分,他们的周末是1997年。
为WEEK_OF_MONTH字段WEEK_OF_MONTH值范围为0至6.一个月的第一周( WEEK_OF_MONTH = 1 )是该月份至少getMinimalDaysInFirstWeek()连续天的最早集合,截止于getFirstDayOfWeek()前getFirstDayOfWeek() 。 与一年的第1周不同,一个月的第1周可能短于7天,不需要从getFirstDayOfWeek()开始,不包括上个月的天数。 第1周前一个月的天数为WEEK_OF_MONTH ,为0。
例如,如果getFirstDayOfWeek()是SUNDAY和getMinimalDaysInFirstWeek()是4,那么1998年1月的第一个星期是1月4日星期日到1月10日星期六。这几天有一个WEEK_OF_MONTH 1月1日星期四到1月3日星期六有一个WEEK_OF_MONTH为0.如果getMinimalDaysInFirstWeek()更改为3,则1月1日至1月3日期间有一个WEEK_OF_MONTH 。
clear方法设置日历字段未定义。 GregorianCalendar如果其值未定义,则会为每个日历字段使用以下默认值。
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
TimeZone , Serialized Form
Calendar.Builder| Modifier and Type | Field and Description |
|---|---|
static int |
AD
价值
ERA字段表示共同时代(Anno Domini),也称为CE。
|
static int |
BC
ERA字段的价值表示在共同时代之前(在基督之前),也称为公元前9世纪。
|
ALL_STYLES, AM, AM_PM, APRIL, areFieldsSet, AUGUST, DATE, DAY_OF_MONTH, DAY_OF_WEEK, DAY_OF_WEEK_IN_MONTH, DAY_OF_YEAR, DECEMBER, DST_OFFSET, ERA, FEBRUARY, FIELD_COUNT, fields, FRIDAY, HOUR, HOUR_OF_DAY, isSet, isTimeSet, JANUARY, JULY, JUNE, LONG, LONG_FORMAT, LONG_STANDALONE, MARCH, MAY, MILLISECOND, MINUTE, MONDAY, MONTH, NARROW_FORMAT, NARROW_STANDALONE, NOVEMBER, OCTOBER, PM, SATURDAY, SECOND, SEPTEMBER, SHORT, SHORT_FORMAT, SHORT_STANDALONE, SUNDAY, THURSDAY, time, TUESDAY, UNDECIMBER, WEDNESDAY, WEEK_OF_MONTH, WEEK_OF_YEAR, YEAR, ZONE_OFFSET| Constructor and Description |
|---|
GregorianCalendar()
构造一个默认
GregorianCalendar使用默认时区的当前时间的默认
FORMAT语言环境。
|
GregorianCalendar(int year, int month, int dayOfMonth)
构造一个
GregorianCalendar ,其中给定日期在默认时区设置为默认语言环境。
|
GregorianCalendar(int year, int month, int dayOfMonth, int hourOfDay, int minute)
构造一个
GregorianCalendar ,给定的日期和时间为默认时区设置默认语言环境。
|
GregorianCalendar(int year, int month, int dayOfMonth, int hourOfDay, int minute, int second)
构造一个GregorianCalendar,其中给定的日期和时间为默认时区设置了默认语言环境。
|
GregorianCalendar(Locale aLocale)
根据给定区域设置的默认时区中的当前时间构建一个
GregorianCalendar 。
|
GregorianCalendar(TimeZone zone)
构造一个
GregorianCalendar基于与默认定的时区当前时间
FORMAT区域。
|
GregorianCalendar(TimeZone zone, Locale aLocale)
根据给定时区的当前时间,使用给定的区域设置构建一个
GregorianCalendar 。
|
| Modifier and Type | Method and Description |
|---|---|
void |
add(int field, int amount)
根据日历的规则,将指定的(已签名的)时间添加到给定的日历字段。
|
Object |
clone()
创建并返回此对象的副本。
|
protected void |
computeFields()
时间值(从毫秒偏移转换
Epoch )中的日历字段值。
|
protected void |
computeTime()
日历字段值转换为时间值(毫秒从偏置
Epoch )。
|
boolean |
equals(Object obj)
将此
GregorianCalendar与指定的Object进行
Object 。
|
static GregorianCalendar |
from(ZonedDateTime zdt)
获取的实例
GregorianCalendar从一个默认的语言环境
ZonedDateTime对象。
|
int |
getActualMaximum(int field)
返回此日历字段可能有,考虑到给定的时间值和的当前值中的最大值
getFirstDayOfWeek ,
getMinimalDaysInFirstWeek ,
getGregorianChange和
getTimeZone方法。
|
int |
getActualMinimum(int field)
返回此日历字段可能有,考虑到给定的时间值和的当前值的最小值
getFirstDayOfWeek ,
getMinimalDaysInFirstWeek ,
getGregorianChange和
getTimeZone方法。
|
String |
getCalendarType()
返回
"gregory"作为日历类型。
|
int |
getGreatestMinimum(int field)
返回此
GregorianCalendar实例的给定日历字段的最高最小值。
|
Date |
getGregorianChange()
获取公历日历更改日期。
|
int |
getLeastMaximum(int field)
返回此
GregorianCalendar实例的给定日历字段的最低最大值。
|
int |
getMaximum(int field)
返回此
GregorianCalendar实例的给定日历字段的
GregorianCalendar 。
|
int |
getMinimum(int field)
返回此
GregorianCalendar实例的给定日历字段的
GregorianCalendar 。
|
TimeZone |
getTimeZone()
获取时区。
|
int |
getWeeksInWeekYear()
返回周在数
week year这个代表
GregorianCalendar 。
|
int |
getWeekYear()
返回由
GregorianCalendar代表的
GregorianCalendar 。
|
int |
hashCode()
生成此
GregorianCalendar对象的哈希码。
|
boolean |
isLeapYear(int year)
确定给定年份是否是闰年。
|
boolean |
isWeekDateSupported()
返回
true表示此
GregorianCalendar支持周日期。
|
void |
roll(int field, boolean up)
在给定时间字段上添加或减少单个时间单位,而不改变较大的字段。
|
void |
roll(int field, int amount)
向指定的日历字段添加签名金额,而不更改较大的字段。
|
void |
setGregorianChange(Date date)
设置
GregorianCalendar更改日期。
|
void |
setTimeZone(TimeZone zone)
以给定的时区值设置时区。
|
void |
setWeekDate(int weekYear, int weekOfYear, int dayOfWeek)
|
ZonedDateTime |
toZonedDateTime()
此目的是一个转换
ZonedDateTime表示基于时间线,因为这同一点
GregorianCalendar 。
|
after, before, clear, clear, compareTo, complete, get, getAvailableCalendarTypes, getAvailableLocales, getDisplayName, getDisplayNames, getFirstDayOfWeek, getInstance, getInstance, getInstance, getInstance, getMinimalDaysInFirstWeek, getTime, getTimeInMillis, internalGet, isLenient, isSet, set, set, set, set, setFirstDayOfWeek, setLenient, setMinimalDaysInFirstWeek, setTime, setTimeInMillis, toInstant, toStringpublic static final int BC
ERA字段的价值,表示在共同时代之前(基督之前),也称为公元前百年。
从BC到AD是...,公元前2年,公元前1年,公元1年,公元2年
Calendar.ERA ,
Constant Field Values
public static final int AD
ERA字段的价值指出了共同的时代(Anno Domini),也被称为CE。
从BC到AD是...,公元前2年,公元前1年,公元1年,公元2年
Calendar.ERA ,
Constant Field Values
public GregorianCalendar()
GregorianCalendar使用默认时区的当前时间的默认
FORMAT语言环境。
public GregorianCalendar(TimeZone zone)
GregorianCalendar基于与默认定的时区当前时间
FORMAT区域。
zone - 给定的时区。
public GregorianCalendar(Locale aLocale)
GregorianCalendar 。
aLocale - 给定的区域设置。
public GregorianCalendar(TimeZone zone, Locale aLocale)
GregorianCalendar 。
zone - 给定的时区。
aLocale - 给定的区域设置。
public GregorianCalendar(int year,
int month,
int dayOfMonth)
GregorianCalendar ,其中给定日期在默认时区中设置为默认语言环境。
year - 用于设置日历中的
YEAR日历字段的值。
month - 用于在日历中设置MONTH日历字段的值。
月值为0。
例如,1月份为0。
dayOfMonth - 用于在日历中设置
DAY_OF_MONTH日历字段的值。
public GregorianCalendar(int year,
int month,
int dayOfMonth,
int hourOfDay,
int minute)
GregorianCalendar ,其中给定的日期和时间为默认时区设置为默认语言环境。
year - 用于在日历中设置
YEAR日历字段的值。
month - 用于在日历中设置MONTH日历字段的值。
月值为0。
例如,1月份为0。
dayOfMonth - 用于在日历中设置
DAY_OF_MONTH日历字段的值。
hourOfDay - 用于在日历中设置
HOUR_OF_DAY日历字段的值。
minute - 用于在日历中设置
MINUTE日历字段的值。
public GregorianCalendar(int year,
int month,
int dayOfMonth,
int hourOfDay,
int minute,
int second)
year - 用于在日历中设置
YEAR日历字段的值。
month - 用于设置日历中的MONTH日历字段的值。
月值为0。
例如,1月份为0。
dayOfMonth - 用于设置日历中的
DAY_OF_MONTH日历字段的值。
hourOfDay - 用于在日历中设置
HOUR_OF_DAY日历字段的值。
minute - 用于设置日历中的
MINUTE日历字段的值。
second - 用于在日历中设置
SECOND日历字段的值。
public void setGregorianChange(Date date)
GregorianCalendar更改日期。
这是从朱利安到达格里高利日期的时间点。
默认是1582年10月15日(公历)。
在此之前,日期将在朱利安历。
要获得纯粹的朱利安历,请将更改日期设置为Date(Long.MAX_VALUE) 。 要获得纯公历,请将更改日期设置为Date(Long.MIN_VALUE) 。
date - 给定的公历切割日期。
public final Date getGregorianChange()
GregorianCalendar对象的格里高利割接日期。
public boolean isLeapYear(int year)
true 。
要指定BC年数,必须给出1 - year number 。
例如,年份BC 4被指定为-3。
year - 给定的一年。
true如果给定年份是闰年;
false否则。
public String getCalendarType()
"gregory"作为日历类型。
getCalendarType在类别
Calendar
"gregory"
Locale.Builder.setLocale(Locale) ,
Locale.Builder.setUnicodeLocaleKeyword(String, String)
public boolean equals(Object obj)
GregorianCalendar与指定的Object进行Object 。
其结果是true当且仅当参数是GregorianCalendar对象,表示同一时间值(毫秒从偏移Epoch下相同) Calendar参数和阳历更改日期与此对象。
equals在类别
Calendar
obj - 要比较的对象。
true如果这个对象等于obj ;
false否则。
Calendar.compareTo(Calendar)
public int hashCode()
GregorianCalendar对象的哈希码。
hashCode在
Calendar
Object.equals(java.lang.Object) ,
System.identityHashCode(java.lang.Object)
public void add(int field,
int amount)
添加规则1 。 field之后的电话减去field之前的电话是amount ,模数发生在field任何溢出。 当字段值超出其范围时发生溢出,结果是下一个较大的字段递增或递减,并将字段值调整回其范围。
添加规则2 。 如果一个较小的领域预计是不变的,但是它不可能等于其先前的价值,因为field改变后的最小或最大值的变化,那么其价值被调整为尽可能接近其预期值。 较小的字段表示较小的时间单位。 HOUR是一个比DAY_OF_MONTH更小的字段。 没有对未预期不变的较小的领域进行调整。 日历系统确定预期哪些字段是不变的。
add在类别
Calendar
field - 日历字段。
amount - 要添加到该字段的日期或时间的数量。
IllegalArgumentException -如果
field是
ZONE_OFFSET ,
DST_OFFSET ,或未知的,或者如果任何日历字段具有在非宽松模式外的范围内的值。
Calendar.roll(int,int) ,
Calendar.set(int,int)
public void roll(int field,
boolean up)
示例 :考虑一个GregorianCalendar设置为1999年12月31日的GregorianCalendar.呼叫roll(Calendar.MONTH, true)将日历设置为1999年1月31日YEAR字段未更改,因为它是一个比MONTH更大的字段。
roll在
Calendar
up - 指示指定日历字段的值是要卷起还是滚动。
使用true如果卷起, false其他。
field - 时间字段。
IllegalArgumentException -如果
field是
ZONE_OFFSET ,
DST_OFFSET ,或未知的,或者如果任何日历字段具有在非宽松模式外的范围内的值。
add(int,int) ,
Calendar.set(int,int)
public void roll(int field,
int amount)
此方法在添加金额之前调用Calendar.complete() ,以便所有日历字段被归一化。 如果任何日历字段在非宽松模式下具有超出范围值,则抛出IllegalArgumentException 。
示例 :考虑一个GregorianCalendar设置为1999年8月31日的roll(Calendar.MONTH, 8)呼叫roll(Calendar.MONTH, 8)将日历设置为1999年4月30 日 。 使用GregorianCalendar ,该DAY_OF_MONTH场不能在一个月四月31。 DAY_OF_MONTH设置为最接近的可能值30.由于YEAR字段比MONTH更大,所以YEAR字段保持1999的值。
示例 :考虑一个GregorianCalendar设置为1999年6月6日星期六的roll(Calendar.WEEK_OF_MONTH, -1)呼叫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日和09年6月5,根据之间添加规则2, DAY_OF_WEEK ,不变时改变WEEK_OF_MONTH ,设置为星期二,最接近的可能值至周日(其中周日是本周的第一天)。
roll在类别
Calendar
field - 日历字段。
amount - 签收金额加至
field 。
IllegalArgumentException -如果
field是
ZONE_OFFSET ,
DST_OFFSET ,或未知的,或者如果任何日历字段具有在非宽松模式外的范围内的值。
roll(int,boolean) ,
add(int,int) ,
Calendar.set(int,int)
public int getMinimum(int field)
GregorianCalendar实例的给定日历字段的GregorianCalendar 。
最小值被定义为通过返回最小值get方法为任何可能的时间值,同时考虑到的电流值getFirstDayOfWeek , getMinimalDaysInFirstWeek , getGregorianChange和getTimeZone方法。
getMinimum在类别
Calendar
field - 日历字段。
getMaximum(int) ,
getGreatestMinimum(int) ,
getLeastMaximum(int) ,
getActualMinimum(int) ,
getActualMaximum(int)
public int getMaximum(int field)
GregorianCalendar实例的给定日历字段的GregorianCalendar 。
最大值被定义为通过返回的最大的值get方法为任何可能的时间值,同时考虑到的电流值getFirstDayOfWeek , getMinimalDaysInFirstWeek , getGregorianChange和getTimeZone方法。
getMaximum在类别
Calendar
field - 日历字段。
getMinimum(int) ,
getGreatestMinimum(int) ,
getLeastMaximum(int) ,
getActualMinimum(int) ,
getActualMaximum(int)
public int getGreatestMinimum(int field)
GregorianCalendar实例的给定日历字段的最高最小值。
最高的最小值被定义为返回的最大价值getActualMinimum(int)任何可能的时间值,同时考虑到的当前值getFirstDayOfWeek , getMinimalDaysInFirstWeek , getGregorianChange和getTimeZone方法。
getGreatestMinimum在类别
Calendar
field - 日历字段。
getMinimum(int) ,
getMaximum(int) ,
getLeastMaximum(int) ,
getActualMinimum(int) ,
getActualMaximum(int)
public int getLeastMaximum(int field)
GregorianCalendar实例的给定日历字段的最低最大值。
的最低的最大值被定义为通过返回最小值getActualMaximum(int)任何可能的时间值,同时考虑到的电流值getFirstDayOfWeek , getMinimalDaysInFirstWeek , getGregorianChange和getTimeZone方法。
getLeastMaximum在
Calendar
field - 日历字段
getMinimum(int) ,
getMaximum(int) ,
getGreatestMinimum(int) ,
getActualMinimum(int) ,
getActualMaximum(int)
public 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日不存在。
getActualMinimum在类别
Calendar
field - 日历字段
GregorianCalendar的时间值
getMinimum(int) ,
getMaximum(int) ,
getGreatestMinimum(int) ,
getLeastMaximum(int) ,
getActualMaximum(int)
public int getActualMaximum(int field)
getFirstDayOfWeek , getMinimalDaysInFirstWeek , getGregorianChange和getTimeZone方法。
例如,如果这个实例的日期是2004年2月1日,则DAY_OF_MONTH字段的实际最大值为29,因为2004年是闰年,如果此实例的日期是2005年2月1日,则为28。
这种方法计算的最大值WEEK_OF_YEAR基础上, YEAR (日历年)值,而不是week year 。 呼叫getWeeksInWeekYear()得到的最大值WEEK_OF_YEAR在此的一周年GregorianCalendar 。
getActualMaximum在类别
Calendar
field - 日历字段
GregorianCalendar的时间值
getMinimum(int) ,
getMaximum(int) ,
getGreatestMinimum(int) ,
getLeastMaximum(int) ,
getActualMinimum(int)
public TimeZone getTimeZone()
Calendar
getTimeZone在
Calendar
public void setTimeZone(TimeZone zone)
Calendar复制
setTimeZone在类别
Calendar
zone - 给定的时区。
public final boolean isWeekDateSupported()
true表示此
GregorianCalendar支持周日期。
isWeekDateSupported在类别
Calendar
true (总是)
getWeekYear() ,
setWeekDate(int,int,int) ,
getWeeksInWeekYear()
public int getWeekYear()
GregorianCalendar 。
星期之间的星期之间的星期数与周年的最大星期数有相同的周年值,可能在YEAR (日历年)值之前或之后的一年。
在计算周年之前,此方法调用Calendar.complete() 。
getWeekYear在类别
Calendar
GregorianCalendar 。
如果ERA值为BC ,则年份由0或负数表示:BC 1为0,BC 2为-1,BC 3为-2,依此类推。
IllegalArgumentException - 如果任何日历字段在非宽松模式下无效。
isWeekDateSupported() ,
getWeeksInWeekYear() ,
Calendar.getFirstDayOfWeek() ,
Calendar.getMinimalDaysInFirstWeek()
public 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标准不同,该weekOfYear编号为兼容标准时getFirstDayOfWeek()为MONDAY和getMinimalDaysInFirstWeek()是4。
与set方法不同,所有日历字段和时间值即时返回时计算。
如果weekOfYear在weekYear中有效的weekYear范围weekYear , weekYear和weekOfYear值将以宽松模式进行调整,否则IllegalArgumentException非宽松模式抛出。
setWeekDate在类别
Calendar
weekYear - 周年
weekOfYear - 周数基于
weekYear
dayOfWeek - 星期几值:
DAY_OF_WEEK字段的
常数之一:
SUNDAY ,...,
SATURDAY 。
IllegalArgumentException - 如果任何给定的日期说明符无效,或者如果任何日历字段与非宽松模式中的给定日期说明符不一致
isWeekDateSupported() ,
Calendar.getFirstDayOfWeek() ,
Calendar.getMinimalDaysInFirstWeek()
public int getWeeksInWeekYear()
GregorianCalendar 。
例如,如果这个GregorianCalendar的日期是2008年12月31日,有the ISO 8601 compatible setting ,则该方法将在2008年12月29日至2010年1月3日期间返回53,而getActualMaximum(WEEK_OF_YEAR)将在2007年12月31日至12月期间返回52 28,2008。
getWeeksInWeekYear在类别
Calendar
Calendar.WEEK_OF_YEAR ,
getWeekYear() ,
getActualMaximum(int)
protected void computeFields()
computeFields在类别
Calendar
Calendar.complete()
protected void computeTime()
computeTime在类别
Calendar
IllegalArgumentException - 如果任何日历字段无效。
Calendar.complete() ,
Calendar.computeFields()
public ZonedDateTime toZonedDateTime()
ZonedDateTime表示基于时间线,因为这同一点GregorianCalendar 。
由于该对象支持Julian-Gregorian切换日期,并且ZonedDateTime不支持,所以可能产生的年,月和日将具有不同的值。 结果将表示ISO日历系统中的正确日期,对于修改的朱利安天数也将是相同的值。
public static GregorianCalendar from(ZonedDateTime zdt)
GregorianCalendar从一个默认的语言环境ZonedDateTime对象。
由于ZonedDateTime不支持朱利安- Gregorian转换日期和使用ISO日历系统,返回的GregorianCalendar是一个纯粹的阳历和使用ISO 8601标准定义的一周,其中有MONDAY为FirstDayOfWeek和4作为价值MinimalDaysInFirstWeek 。
ZoneDateTime可以在未来进一步存储时间点上的积分,并且在过去比GregorianCalendar进一步。 在这种情况下,此方法将抛出IllegalArgumentException异常。
zdt - 要转换的划分的日期时间对象
NullPointerException - 如果
zdt为空
IllegalArgumentException - 如果分区的日期时间太大,无法表示为
GregorianCalendar
Submit a bug or feature
For further API reference and developer documentation, see Java SE Documentation. That documentation contains more detailed, developer-targeted descriptions, with conceptual overviews, definitions of terms, workarounds, and working code examples.
Copyright © 1993, 2014, Oracle and/or its affiliates. All rights reserved.