public class GregorianCalendar extends Calendar
Calendar
GregorianCalendar
是一个具体的子类,提供了世界上大多数使用标准的日历系统。
GregorianCalendar
是一个混合的日历,支持朱利安和格里高利历法系统与一个单一的连续的支持,对应的阳历日期默认当公历创立(1582年10月15日在一些国家,后来在别人)。割接日期可以由调用者通过调用setGregorianChange()
改变。
从历史上看,这些国家采用公历,1582年10月4日(朱利安)因此,其次是1582年10月15日(阳历)。这个日历模型正确。在公历GregorianCalendar
割接,实现了朱利安的日历。公历日历和朱利安之间唯一的区别是闰年规则。朱利安日历指定闰年每四年一次,而忽略了百年的公历是不能被400整除。
GregorianCalendar
实现预期的格里高利和朱利安的日历。即,通过推断当前的规则下去远远落后与计算时间日期。作为一个结果,GregorianCalendar
可用于所有的年产生有意义的和一致的结果。然而,利用GregorianCalendar
是历史的准确日期只从3月1日,公元4年以后,当朱利安采用现代日历规则。在此日期之前,“跨越年规则”被不规则地应用,在公元前45年前,朱利安日历甚至不存在。
以公历的制度之前,新年的第一天是3月25日。为了避免混乱,这个日历总是使用1月1日。如果需要手动调整可能是阳历的转换之前,金秋1月1日和3月24日之间的日期了。
计算从1到53范围内的WEEK_OF_YEAR
字段值。一个日历年的第一周是最早的七天内开始getFirstDayOfWeek()
包含从那一年至少getMinimalDaysInFirstWeek()
天。因此,取决于getMinimalDaysInFirstWeek()
,getFirstDayOfWeek()
值,和1月1日的一周。一年1周和1周之间,次年周(独家)按顺序编号从2到52或53(除年(S)参与了Julian Gregorian的过渡)。
的getFirstDayOfWeek()
和getMinimalDaysInFirstWeek()
值使用区域设置依赖的资源建设GregorianCalendar
初始化。The week determination is compatible与ISO 8601标准时,getFirstDayOfWeek()
是MONDAY
和getMinimalDaysInFirstWeek()
是4,它的值被用在地区标准者优先。这些值可以被明确地通过调用setFirstDayOfWeek()
和setMinimalDaysInFirstWeek()
。
一个week year是一WEEK_OF_YEAR
周期同步。在第一周和最后几周(包括)之间的所有星期都有相同的一周的价值。因此,一周的第一天和最后一天可能会有不同的日历年值。
例如,1998年1月1日是一个星期四。如果getFirstDayOfWeek()
是MONDAY
和getMinimalDaysInFirstWeek()
4(ISO 8601标准兼容的设置),然后1周1998从1997年12月29日开始,1998年1月4日结束。本周的一年是1998的最后三天的日历年1997。如果,然而,getFirstDayOfWeek()
是SUNDAY
,然后1周1998从1998年1月4日开始,1998年1月10日结束;1998前三天,然后是53周,1997周是1997年。
计算从0到6范围内的WEEK_OF_MONTH
字段值。一个月的1周(与WEEK_OF_MONTH = 1
天)是最早的组至少getMinimalDaysInFirstWeek()
连续天月结束的前一天getFirstDayOfWeek()
。不像一年1周,一个月1周不得短于7天,不需要启动getFirstDayOfWeek()
,不包括前一个月的日子。1周前有一个WEEK_OF_MONTH
每月0天。
例如,如果getFirstDayOfWeek()
是SUNDAY
和getMinimalDaysInFirstWeek()
是4,然后1998一月第一周的星期日,1月4日通过星期六,1月10日。这些天有一个WEEK_OF_MONTH
1。1月1日星期四,通过星期六,1月3日有一个WEEK_OF_MONTH
0。如果getMinimalDaysInFirstWeek()
改为3,然后从1月1日到1月3日有一个WEEK_OF_MONTH
1。
的clear
方法设置日历字段(S)定义。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
TimeZone
,
Serialized Form
Calendar.Builder
Modifier and Type | Field and Description |
---|---|
static int |
AD
指示共同的时代
ERA 字段值(Anno Domini),也被称为CE。
|
static int |
BC
指示时期常见的时代之前的
ERA 字段值(公元前),也被称为公元前。
|
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()
使用默认时区的当前时间与默认的
FORMAT 现场建立一个默认的
GregorianCalendar 。
|
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(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 。
|
static GregorianCalendar |
from(ZonedDateTime zdt)
从
ZonedDateTime 得到对象的默认区域
GregorianCalendar 实例。
|
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 实例返回给定日历字段的最大值。
|
int |
getMinimum(int field)
这
GregorianCalendar 实例返回给定日历字段的最小值。
|
TimeZone |
getTimeZone()
获取时区。
|
int |
getWeeksInWeekYear()
返回的
GregorianCalendar 代表
week year周数。
|
int |
getWeekYear()
返回的
GregorianCalendar 代表
week year。
|
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, toString
public static final int BC
ERA
字段值(公元前),也被称为公元前。序列的年从
BC
到
AD
是…,公元前2年,公元前1年,公元1年,公元2年,…
public static final int AD
ERA
字段值(Anno Domini),也被称为CE。序列的年从
BC
到
AD
是…,公元前2年,公元前1年,公元1年,公元2年,…
public GregorianCalendar()
FORMAT
现场建立一个默认的
GregorianCalendar
。
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。例如,一月的0。
dayOfMonth
-用于在日历设置
DAY_OF_MONTH
日历字段的值。
public GregorianCalendar(int year, int month, int dayOfMonth, int hourOfDay, int minute)
GregorianCalendar
与给定的日期和时间设置默认时区与默认的区域设置。
year
-用于在日历设置
YEAR
日历字段的值。
month
-用于在日历设置
MONTH
日历字段的值。月值是0。例如,一月的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。例如,一月的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
如果给定的年是闰年。指定公元年数、
1 - year number
必须给予。例如,公元前公元前3年被指定为- 4。
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
。结果是
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日。打电话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)
设置日历的4月30日,一千九百九十九。使用GregorianCalendar
的DAY_OF_MONTH
领域,不能在31月四月。DAY_OF_MONTH
设置为最接近的值,30。的YEAR
场保持1999的价值,因为它是一个比较大的领域MONTH
。
例如:考虑一个GregorianCalendar
原定于1999年6月6日星期日。打电话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
时,设置为星期二,最可能值到星期日(星期日是一周的第一天)。
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
实例返回给定日历字段的最小值。最小值被定义为最小的方法返回的值
get
任何可能的时间价值,考虑的
getFirstDayOfWeek
,
getMinimalDaysInFirstWeek
电流值,
getGregorianChange
和
getTimeZone
方法。
getMinimum
方法重写,继承类
Calendar
field
-日历字段。
getMaximum(int)
,
getGreatestMinimum(int)
,
getLeastMaximum(int)
,
getActualMinimum(int)
,
getActualMaximum(int)
public int getMaximum(int field)
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。
该方法基于YEAR
计算WEEK_OF_YEAR
最大值(日历年)的价值,不week year。电话getWeeksInWeekYear()
获得在这GregorianCalendar
周年WEEK_OF_YEAR
最大值。
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()
GregorianCalendar
支持周日期
true
。
isWeekDateSupported
方法重写,继承类
Calendar
true
(总是)
getWeekYear()
,
setWeekDate(int,int,int)
,
getWeeksInWeekYear()
public int getWeekYear()
GregorianCalendar
代表
week year。1周的年最大周数之间的周日期同一周年价值可能一年
YEAR
之前或之后(日历年)的价值。
此方法调用之前Calendar.complete()
计算星期几。
getWeekYear
方法重写,继承类
Calendar
GregorianCalendar
代表周年。如果
ERA
值
BC
,今年是0或负数表示:公元前1年是0,公元前2年-公元前3是1,2,等等。
IllegalArgumentException
-如果任何日历字段无效非宽松的模式。
isWeekDateSupported()
,
getWeeksInWeekYear()
,
Calendar.getFirstDayOfWeek()
,
Calendar.getMinimalDaysInFirstWeek()
public void setWeekDate(int weekYear, int weekOfYear, int dayOfWeek)
weekYear
说明符,
weekOfYear
给定日期这
GregorianCalendar
,和
dayOfWeek
。
weekOfYear
如下
WEEK_OF_YEAR
numbering,
dayOfWeek
值必须是一个对
DAY_OF_WEEK
值:
SUNDAY
到
SATURDAY
。
注意,周表示数字的一天不同于ISO 8601标准,weekOfYear
编号与标准兼容的时候getFirstDayOfWeek()
是MONDAY
和getMinimalDaysInFirstWeek()
4。
不像set
方法,所有的日历、时间价值即时计算返回时。
如果weekOfYear
出每年的范围有效周的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
代表
week year数周。
例如,如果这GregorianCalendar
的日期是2008年12月31日the ISO 8601 compatible setting,此方法将返回53期:2008年12月29日至2010年1月3日,getActualMaximum(WEEK_OF_YEAR)
将返回52期:2007年12月31日至2008年12月28日。
getWeeksInWeekYear
方法重写,继承类
Calendar
Calendar.WEEK_OF_YEAR
,
getWeekYear()
,
getActualMaximum(int)
protected void computeFields()
complete
方法调用。
computeFields
方法重写,继承类
Calendar
Calendar.complete()
protected void computeTime()
computeTime
方法重写,继承类
Calendar
IllegalArgumentException
-如果任何日历字段无效。
Calendar.complete()
,
Calendar.computeFields()
public ZonedDateTime toZonedDateTime()
ZonedDateTime
表示时间轴上的同一点为这
GregorianCalendar
。
因为这个对象支持Julian Gregorian cutover的日期和ZonedDateTime
不,这是可能的,由此产生的年、月、日都会有不同的价值观。结果将代表在同一日历系统中的正确日期,这也将是修改后的Julian Days的相同的值。
public static GregorianCalendar from(ZonedDateTime zdt)
ZonedDateTime
得到对象的默认区域
GregorianCalendar
实例。
因为ZonedDateTime
不支持朱利安的阳历日期和使用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.