- java.lang.Object
-
- java.util.Calendar
-
- All Implemented Interfaces:
-
Serializable
,Cloneable
,Comparable<Calendar>
- 已知直接子类:
-
GregorianCalendar
public abstract class Calendar extends Object implements Serializable, Cloneable, Comparable<Calendar>
所述Calendar
类是一个抽象类,可以为在某一特定时刻和一组之间的转换的方法calendar fields
如YEAR
,MONTH
,DAY_OF_MONTH
,HOUR
,等等,以及用于操纵该日历字段,如获取的日期下个星期。 时间上的瞬间可以表示为毫秒值,该值与1970年1月1日00:00:00.000 GMT(格里高利)的Epoch偏移。该类还提供了用于在包外部实现具体日历系统的其他字段和方法。 这些字段和方法定义为
protected
。像其他语言环境敏感的类一样,
Calendar
提供了一个类方法,getInstance
,用于获取这种类型的一般有用的对象。Calendar
的getInstance
方法返回一个Calendar
对象,其日历字段已使用当前日期和时间初始化:Calendar rightNow = Calendar.getInstance();
Calendar
对象可以产生实现特定语言和日历风格的日期时间格式化所需的所有日历字段值(例如日语 - 公历,日语 - 繁体)。Calendar
定义某些日历字段返回的值的范围及其含义。 例如,所有日历的日历系统的第一个月的值为MONTH == JANUARY
。 其他值由具体的子类定义,如ERA
。 有关详细信息,请参阅各个实体文档和子类文档。获取和设置日历字段值
日历字段值可以通过调用
set
方法设置。 在Calendar
设置的任何字段值将不被解释,直到它需要计算其时间值(从Epoch的毫秒)或日历字段的值。 调用get
,getTimeInMillis
,getTime
,add
和roll
涉及这样的计算。宽大
Calendar
有两种方式来解释日历字段, 宽松和不宽泛 。 当Calendar
处于宽松模式时,它接受比它产生的更广泛的日历字段值。 当Calendar
重新计算日历字段值以返回get()
,所有日历字段都被归一化。 例如,宽松的GregorianCalendar
将解释MONTH == JANUARY
DAY_OF_MONTH == 32
为2月1日。当
Calendar
处于非宽松模式时,如果其日历字段中存在任何不一致,则会抛出异常。 例如,GregorianCalendar
总是在1和月份之间产生DAY_OF_MONTH
值。 如果设置了超出范围的字段值,则非宽松的GregorianCalendar
会在计算其时间或日历字段值时抛出异常。First Week
Calendar
使用两个参数定义了一个特定地区的七天周:第一周的第一天和第一周的最小天数(从1到7)。 当构建一个Calendar
时,这些数字取自区域设置资源数据。 也可以通过设置其值的方法来明确指定它们。设置或获取
WEEK_OF_MONTH
或WEEK_OF_YEAR
字段时,Calendar
必须确定月或年的第一周作为参考点。 一个月或一年的第一个星期定义为从getFirstDayOfWeek()
开始的最早七天期间,该月份至少包含getMinimalDaysInFirstWeek()
天。 星期编号...,-1,0在第一周之前; 周数为2,3,...跟随。 请注意,由get()
返回的归一化编号可能不同。 例如,特定的Calendar
子类可以指定一年的第1周之前的一周为上一周的n
。日历字段分辨率
在计算日历字段的日期和时间时,可能没有足够的计算信息(例如只有年月日没有月份),或者可能存在不一致的信息(例如1996年7月15日星期二(格里高利) - 1996年7月15日实际上是星期一)。Calendar
将以下列方式解析日历字段值以确定日期和时间。If there is any conflict in calendar field values,
Calendar
gives priorities to calendar fields that have been set more recently.以下是日历字段的默认组合。 将使用由最近设置的单个字段确定的最新组合。YEAR + MONTH + DAY_OF_MONTH YEAR + MONTH + WEEK_OF_MONTH + DAY_OF_WEEK YEAR + MONTH + DAY_OF_WEEK_IN_MONTH + DAY_OF_WEEK YEAR + DAY_OF_YEAR YEAR + DAY_OF_WEEK + WEEK_OF_YEAR
HOUR_OF_DAY AM_PM + HOUR
如果在所选字段组合中没有设置其值的任何日历字段,则
Calendar
使用其默认值。 每个字段的默认值可能会因具体的日历系统而异。 例如,GregorianCalendar
,字段的默认值是相同的时代的开始:即YEAR = 1970
,MONTH = JANUARY
,DAY_OF_MONTH = 1
,等等。注意:在某些奇异时期的解释中存在某些可能的含糊之处,其解决方式如下:
- 23:59是一天的最后一分钟,00:00是第二天的第一分钟。 因此,一九九九年十二月三十一日(星期三)在二○○○年一月一日(星期一)
- 虽然历史上不太精确,但午夜也属于“am”,中午属于“pm”,所以在同一天12:00(午夜)上午12时01分,中午12:00(中午)下午01点
日期或时间格式字符串不是日历定义的一部分,因为这些字符串必须在运行时由用户修改或覆盖。 使用
DateFormat
格式化日期。现场操纵
:日历字段可以用三种方法来改变set()
,add()
,并roll()
。set(f, value)
改变日历字段f
至value
。 另外,它设置一个内部成员变量来指示日历字段f
已被更改。 尽管日历字段f
立即更改,以毫秒为单位日历的时间值不重新计算,直到下一次调用get()
,getTime()
,getTimeInMillis()
,add()
,或roll()
而成。 因此,多次调用set()
不会触发多个不必要的计算。 由于使用set()
更改日历字段,其他日历字段也可能会更改,具体取决于日历字段,日历字段值和日历系统。 另外,在重新计算日历字段后,get(f)
会通过调用set
方法返回value
。 具体细节由具体的日历类确定。例如 :考虑一个
GregorianCalendar
最初被设置为1999调用8月31日set(Calendar.MONTH, Calendar.SEPTEMBER)
台日至九月31日,1999年这是一个临时的内部表示解析为1999年10月1,如果getTime()
,然后调用。 但是,在拨打set(Calendar.DAY_OF_MONTH, 30)
之前拨打getTime()
将日期设置为1999年9月30日,因为在set()
本身之后没有重新计算。add(f, delta)
增加delta
现场f
。 这相当于调用set(f, get(f) + delta)
进行了两次调整:Add rule 1. The value of field
f
after the call minus the value of fieldf
before the call isdelta
, modulo any overflow that has occurred in fieldf
. Overflow occurs when a field value exceeds its range and, as a result, the next larger field is incremented or decremented and the field value is adjusted back into its range.Add rule 2. If a smaller field is expected to be invariant, but it is impossible for it to be equal to its prior value because of changes in its minimum or maximum after field
f
is changed or other constraints, such as time zone offset changes, then its value is adjusted to be as close as possible to its expected value. A smaller field represents a smaller unit of time.HOUR
is a smaller field thanDAY_OF_MONTH
. No adjustment is made to smaller fields that are not expected to be invariant. The calendar system determines what fields are expected to be invariant.此外,与
set()
不同,add()
强制立即重新计算日历的毫秒数和所有字段。例如 :考虑一个
GregorianCalendar
最初被设置为1999调用8月31日,add(Calendar.MONTH, 13)
套日历9月30日,2000年添加规则1套MONTH
场至九月,因为加入13个月月给明年九月。 由于DAY_OF_MONTH
不能在9月31日在GregorianCalendar
, 添加规则2将DAY_OF_MONTH
设置为30,最接近的可能值。 虽然它是一个较小的领域,DAY_OF_WEEK
没有被规则2调整,因为预期在GregorianCalendar
的月份变化时会改变。roll(f, delta)
增加delta
现场f
,不更改更大的字段。 这相当于调用add(f, delta)
进行以下调整:Roll rule. Larger fields are unchanged after the call. A larger field represents a larger unit of time.
DAY_OF_MONTH
is a larger field thanHOUR
.示例 :参见
GregorianCalendar.roll(int, int)
。使用模式 。 为了激发
add()
和roll()
的行为,请考虑一个用户界面组件,其中包含月,日和年的增量和减量按钮,以及底层的GregorianCalendar
。 如果接口读取1999年1月31日,用户按月增量按钮,应该读什么? 如果基础实施使用set()
,则可能会在1999年3月3日发布。更好的结果是1999年2月28日。此外,如果用户再次按下月增加按钮,应该在1999年3月31日,而不是1999年3月28日通过保存原始日期并使用add()
或roll()
,取决于是否影响较大的字段,用户界面可以像大多数用户一样直观地期待。- 从以下版本开始:
- 1.1
- 另请参见:
-
System.currentTimeMillis()
,Date
,GregorianCalendar
,TimeZone
,DateFormat
, Serialized Form
-
-
Nested Class Summary
Nested Classes Modifier and Type Class 描述 static class
Calendar.Builder
Calendar.Builder
用于从各种日期时间参数创建Calendar
。
-
Field Summary
Fields Modifier and Type Field 描述 static int
ALL_STYLES
一个表示getDisplayNames
的样式说明符,表示所有样式的名称,如“1月”和“1月”。static int
AM
AM_PM
字段的值表示从午夜到中午之前的一天的时间。static int
AM_PM
对于现场数get
和set
指示是否HOUR
是前或中午之后。static int
APRIL
MONTH
字段的价值指示了公历和朱利安日历中的第四个月。protected boolean
areFieldsSet
如果fields[]
与当前设置的时间同步,fields[]
真。static int
AUGUST
MONTH
字段的值表示公历和朱利安日历中的第八个月。static int
DATE
get
和set
字段编号,表示该月的日期。static int
DAY_OF_MONTH
get
字段编号和set
表示本月的日期。static int
DAY_OF_WEEK
get
字段编号和set
表示星期几。static int
DAY_OF_WEEK_IN_MONTH
get
和set
字段编号,表示当月的星期几的序数。static int
DAY_OF_YEAR
get
字段编号和set
表示set
的日数。static int
DECEMBER
MONTH
字段的值表示公历和朱利安日历中的第十二个月。static int
DST_OFFSET
get
字段编号和set
表示夏令时偏移量(以毫秒为单位)。static int
ERA
get
字段号和set
表示时代,例如,在儒略历中的AD或BC。static int
FEBRUARY
MONTH
字段的值表示今年第二个月在公历和朱利安日历。static int
FIELD_COUNT
由get
和set
识别的不同字段的数量。protected int[]
fields
该日历的当前设置时间的日历字段值。static int
FRIDAY
DAY_OF_WEEK
字段的值表示周五。static int
HOUR
get
和set
字段编号,表示上午或下午的小时。static int
HOUR_OF_DAY
get
和set
字段编号,表示当天的小时数。protected boolean[]
isSet
说明是否设置日历的指定日历字段的标志。protected boolean
isTimeSet
如果那么那么time
的值是有效的。static int
JANUARY
MONTH
领域的价值指示了公历和朱利安日历中的一年中的第一个月。static int
JULY
MONTH
领域的价值指示了公历和朱利安日历中的第七个月。static int
JUNE
MONTH
字段的值代表了公历和朱利安日历中的第六个月。static int
LONG
static int
LONG_FORMAT
static int
LONG_STANDALONE
static int
MARCH
MONTH
字段的价值,表示今年第三个月在公历和朱利安日历。static int
MAY
MONTH
字段的价值显示了公历和朱利安日历中的第五个月。static int
MILLISECOND
get
字段编号和set
表示秒内的毫秒数。static int
MINUTE
get
字段编号和set
表示小时内的分钟。static int
MONDAY
DAY_OF_WEEK
字段的值表示星期一。static int
MONTH
get
和set
字段号表示该月。static int
NARROW_FORMAT
static int
NARROW_STANDALONE
getDisplayName
和getDisplayNames
的样式说明符独立地表示一个狭义的名称。static int
NOVEMBER
MONTH
字段的值代表了公历和朱利安日历中的第十一个月。static int
OCTOBER
MONTH
字段的价值表示在公历和朱利安日历中的一年中的第十个月。static int
PM
AM_PM
字段的值表示从中午到午夜之前的一天中的一段时间。static int
SATURDAY
DAY_OF_WEEK
字段的值表示星期六。static int
SECOND
get
字段编号和set
表示分钟内的第二个。static int
SEPTEMBER
MONTH
字段的值代表了公历和朱利安日历中的第九个月。static int
SHORT
static int
SHORT_FORMAT
static int
SHORT_STANDALONE
static int
SUNDAY
DAY_OF_WEEK
字段的值表示星期天。static int
THURSDAY
DAY_OF_WEEK
字段的值表示周四。protected long
time
这个日历的当前设定时间,以1970年1月1日,格林尼治标准时间0:00:00之后的毫秒表示。static int
TUESDAY
DAY_OF_WEEK
字段的值表示周二。static int
UNDECIMBER
MONTH
字段的值表示一年的第十三个月。static int
WEDNESDAY
价值DAY_OF_WEEK
字段表示周三。static int
WEEK_OF_MONTH
get
字段编号和set
表示set
的周数。static int
WEEK_OF_YEAR
get
字段编号和set
表示set
的周数。static int
YEAR
get
字段编号和set
表示年份。static int
ZONE_OFFSET
get
字段编号和set
表示以毫秒为单位的GMT的原始偏移量。
-
方法摘要
所有方法 静态方法 接口方法 抽象方法 具体的方法 Modifier and Type 方法 描述 abstract void
add(int field, int amount)
根据日历的规则,将指定的时间量添加或减去给定的日历字段。boolean
after(Object when)
返回Calendar
是否表示在指定的Object
表示的时间之后的时间。boolean
before(Object when)
返回此Calendar
是否表示由指定的Object
表示的时间之前的时间。void
clear()
将所有的日历字段值和时间值(毫秒从偏移 Epoch如此)Calendar
不确定。void
clear(int field)
设置给定日历字段值和时间值(毫秒从偏移 Epoch如此)Calendar
不确定。Object
clone()
创建并返回此对象的副本。int
compareTo(Calendar anotherCalendar)
比较由两个Calendar
对象表示的时间值( Epoch的毫秒偏移量)。protected void
complete()
填写日历字段中的任何未设置的字段。protected abstract void
computeFields()
protected abstract void
computeTime()
boolean
equals(Object obj)
将此Calendar
与指定的Object
。int
get(int field)
返回给定日历字段的值。int
getActualMaximum(int field)
给定此Calendar
的时间值,返回指定日历字段可能具有的Calendar
。int
getActualMinimum(int field)
给定此Calendar
的时间值,返回指定日历字段可能具有的Calendar
。static Set<String>
getAvailableCalendarTypes()
返回一个不可修改的Set
其中包含Calendar
在运行时环境中支持的所有日历类型。static Locale[]
getAvailableLocales()
返回一个所有语言环境的数组,该类的getInstance
方法可以返回本地化实例。String
getCalendarType()
返回此Calendar
的日历类型。String
getDisplayName(int field, int style, Locale locale)
返回给定的style
和locale
中的日历field
的字符串表示。Map<String,Integer>
getDisplayNames(int field, int style, Locale locale)
返回一个Map
其中包含给定的style
和locale
中的日历field
所有名称及其对应的字段值。int
getFirstDayOfWeek()
得到一周的第一天是什么 例如,SUNDAY
在美国,MONDAY
在法国。abstract int
getGreatestMinimum(int field)
返回此Calendar
实例的给定日历字段的最高最小值。static Calendar
getInstance()
使用默认时区和区域设置获取日历。static Calendar
getInstance(Locale aLocale)
使用默认时区和指定的区域设置获取日历。static Calendar
getInstance(TimeZone zone)
使用指定的时区和默认语言环境获取日历。static Calendar
getInstance(TimeZone zone, Locale aLocale)
获取具有指定时区和区域设置的日历。abstract int
getLeastMaximum(int field)
返回此Calendar
实例的给定日历字段的最低最大值。abstract int
getMaximum(int field)
返回此Calendar
实例的给定日历字段的Calendar
。int
getMinimalDaysInFirstWeek()
获得一年中第一周所需的最低限度的日子; 例如,如果第一周被定义为包含一年中的第一个月的第一个星期,则此方法返回1。abstract int
getMinimum(int field)
返回此Calendar
实例的给定日历字段的Calendar
。Date
getTime()
long
getTimeInMillis()
以毫秒为单位返回此日历的时间值。TimeZone
getTimeZone()
获取时区。int
getWeeksInWeekYear()
返回此Calendar
代表的星期内的星期Calendar
。int
getWeekYear()
返回此Calendar
代表的Calendar
。int
hashCode()
返回此日历的哈希码。protected int
internalGet(int field)
返回给定日历字段的值。boolean
isLenient()
告诉日期/时间的解释是否宽松。boolean
isSet(int field)
确定给定的日历字段是否具有值集,包括通过get
方法调用触发的内部字段计算设置的值的情况。boolean
isWeekDateSupported()
是否返回Calendar
是否支持星期。abstract void
roll(int field, boolean up)
在给定时间字段上添加或减少单个时间单位,而不改变较大的字段。void
roll(int field, int amount)
将指定(签名)金额添加到指定的日历字段,而不更改较大的字段。void
set(int field, int value)
将给定的日历字段设置为给定的值。void
set(int year, int month, int date)
设置日历字段的值YEAR
,MONTH
,并DAY_OF_MONTH
。void
set(int year, int month, int date, int hourOfDay, int minute)
设置日历字段的值YEAR
,MONTH
,DAY_OF_MONTH
,HOUR_OF_DAY
,并MINUTE
。void
set(int year, int month, int date, int hourOfDay, int minute, int second)
设置字段中的值YEAR
,MONTH
,DAY_OF_MONTH
,HOUR_OF_DAY
,MINUTE
,并SECOND
。void
setFirstDayOfWeek(int value)
设置一周的第一天是什么? 例如,SUNDAY
在美国,MONDAY
在法国。void
setLenient(boolean lenient)
指定日期/时间解释是否宽松。void
setMinimalDaysInFirstWeek(int value)
设定一年中第一个星期所需的最短时间是多少? 例如,如果第一周被定义为包含一年中第一个月的第一天的第一周,请调用此值为1的方法。void
setTime(Date date)
使用给定的Date
设置此日历的时间。void
setTimeInMillis(long millis)
从给定的长值设置此日历的当前时间。void
setTimeZone(TimeZone value)
以给定的时区值设置时区。void
setWeekDate(int weekYear, int weekOfYear, int dayOfWeek)
设置这个Calendar
的日期与给定的日期说明符 - 周年,年周和星期几。Instant
toInstant()
将此对象转换为Instant
。String
toString()
返回此日历的字符串表示形式。
-
-
-
字段详细信息
-
ERA
public static final int ERA
get
和set
字段号表示时代,例如,在儒略历中的AD或BC。 这是一个日历特定的值 请参阅子类文档。
-
YEAR
public static final int YEAR
现场号码为get
和set
表示年度。 这是一个日历特定的值 请参阅子类文档。- 另请参见:
- Constant Field Values
-
MONTH
public static final int MONTH
get
字段编号和set
表示月份。 这是一个特定于日历的值。 今年第一个月在公历和朱利安日历是JANUARY
,这是0; 最后一个取决于一年中的月数。
-
WEEK_OF_YEAR
public static final int WEEK_OF_YEAR
get
和set
字段编号,get
set
的周数。 由getFirstDayOfWeek()
和getMinimalDaysInFirstWeek()
定义的一年中的第一周具有值1.子类在一年的第一周之前的几天内定义了WEEK_OF_YEAR
的值。
-
WEEK_OF_MONTH
public static final int WEEK_OF_MONTH
get
字段编号和set
表示set
的周数。 本月的第一个星期,由getFirstDayOfWeek()
和getMinimalDaysInFirstWeek()
定义,具有值1.子类在本月的第一周之前的天数定义了WEEK_OF_MONTH
的值。
-
DATE
public static final int DATE
get
字段编号和set
表示本月的日期。 这是DAY_OF_MONTH
的同义词。 本月的第一天价值为1。- 另请参见:
-
DAY_OF_MONTH
, Constant Field Values
-
DAY_OF_MONTH
public static final int DAY_OF_MONTH
get
字段编号和set
表示本月的日期。 这是DATE
的同义词。 本月的第一天价值为1。- 另请参见:
-
DATE
, Constant Field Values
-
DAY_OF_YEAR
public static final int DAY_OF_YEAR
get
字段编号和set
表示set
的日数。 今年第一天的价值为1。- 另请参见:
- Constant Field Values
-
DAY_OF_WEEK
public static final int DAY_OF_WEEK
get
和set
字段编号,表示星期几。 此字段值SUNDAY
,MONDAY
,TUESDAY
,WEDNESDAY
,THURSDAY
,FRIDAY
,并SATURDAY
。
-
DAY_OF_WEEK_IN_MONTH
public static final int DAY_OF_WEEK_IN_MONTH
get
和set
字段编号,表示当月的星期几的序号。 与DAY_OF_WEEK
字段一起,它独特地指定了一个月内的一天。 不像WEEK_OF_MONTH
和WEEK_OF_YEAR
,该字段的值并不取决于getFirstDayOfWeek()
或者getMinimalDaysInFirstWeek()
。DAY_OF_MONTH 1
通过7
总是对应DAY_OF_WEEK_IN_MONTH 1
;8
至14
对应DAY_OF_WEEK_IN_MONTH 2
,依此类推。DAY_OF_WEEK_IN_MONTH 0
表示前一周DAY_OF_WEEK_IN_MONTH 1
。 负值从月底开始计数,所以一个月的最后一个星期日被指定为DAY_OF_WEEK = SUNDAY, DAY_OF_WEEK_IN_MONTH = -1
。 因为负数值倒计时,所以在一个月内通常会与正值不一致。 例如,如果一个月有31天,DAY_OF_WEEK_IN_MONTH -1
将重叠DAY_OF_WEEK_IN_MONTH 5
,结束4
。- 另请参见:
-
DAY_OF_WEEK
,WEEK_OF_MONTH
, Constant Field Values
-
AM_PM
public static final int AM_PM
get
字段编号和set
说明HOUR
是在中午还是之后。 例如,10:04:15.250 PM,AM_PM
是PM
。- 另请参见:
-
AM
,PM
,HOUR
, Constant Field Values
-
HOUR
public static final int HOUR
get
字段编号和set
表示上午或下午的小时。HOUR
用于12小时钟(0 - 11)。 中午和午夜由0而不是12表示。例如,10:04:15.250 PM,HOUR
是10。- 另请参见:
-
AM_PM
,HOUR_OF_DAY
, Constant Field Values
-
HOUR_OF_DAY
public static final int HOUR_OF_DAY
get
字段编号和set
表示当天的小时数。HOUR_OF_DAY
用于24小时制。 例如:10:04:15.250 PM,HOUR_OF_DAY
是22。- 另请参见:
-
HOUR
, Constant Field Values
-
MINUTE
public static final int MINUTE
get
和set
字段编号表示一小时内的分钟。 例如,10:04:15.250 PM,MINUTE
是4。- 另请参见:
- Constant Field Values
-
SECOND
public static final int SECOND
get
字段编号和set
表示分钟内的第二个。 例如,10:04:15.250 PM,SECOND
是15。- 另请参见:
- Constant Field Values
-
MILLISECOND
public static final int MILLISECOND
get
字段编号和set
表示秒内的毫秒数。 例如:10:04:15.250 PM,MILLISECOND
是250。- 另请参见:
- Constant Field Values
-
ZONE_OFFSET
public static final int ZONE_OFFSET
get
字段编号和set
表示以毫秒为单位的GMT的原始偏移量。如果
TimeZone
实现子类支持历史GMT偏移量更改,则此字段反映该Calendar
的时区的正确GMT偏移值。- 另请参见:
- Constant Field Values
-
DST_OFFSET
public static final int DST_OFFSET
get
字段编号和set
表示夏令时偏移量(以毫秒为单位)。如果
TimeZone
实施子类支持历史夏令时计划更改,则此字段反映该Calendar
的时区正确的夏令时偏移值。- 另请参见:
- Constant Field Values
-
FIELD_COUNT
public static final int FIELD_COUNT
由get
和set
识别的不同字段的数量。 字段编号范围从0..FIELD_COUNT-1
。- 另请参见:
- Constant Field Values
-
SUNDAY
public static final int SUNDAY
DAY_OF_WEEK
字段的值表示星期日。- 另请参见:
- Constant Field Values
-
MONDAY
public static final int MONDAY
DAY_OF_WEEK
字段的值指示星期一。- 另请参见:
- Constant Field Values
-
TUESDAY
public static final int TUESDAY
DAY_OF_WEEK
字段的值表示周二。- 另请参见:
- Constant Field Values
-
WEDNESDAY
public static final int WEDNESDAY
DAY_OF_WEEK
字段的值表示周三。- 另请参见:
- Constant Field Values
-
THURSDAY
public static final int THURSDAY
DAY_OF_WEEK
字段的值表示周四。- 另请参见:
- Constant Field Values
-
FRIDAY
public static final int FRIDAY
DAY_OF_WEEK
字段的值表示周五。- 另请参见:
- Constant Field Values
-
SATURDAY
public static final int SATURDAY
DAY_OF_WEEK
字段的值表示星期六。- 另请参见:
- Constant Field Values
-
JANUARY
public static final int JANUARY
MONTH
字段的值代表了公历和朱利安日历中的一年中的第一个月。- 另请参见:
- Constant Field Values
-
FEBRUARY
public static final int FEBRUARY
MONTH
字段的值代表了今年第二个月在格里高利和朱利安的日历。- 另请参见:
- Constant Field Values
-
MARCH
public static final int MARCH
MONTH
字段的值表示公历和朱利安日历中的第三个月。- 另请参见:
- Constant Field Values
-
APRIL
public static final int APRIL
MONTH
领域的价值指示了公历和朱利安日历中的第四个月。- 另请参见:
- Constant Field Values
-
MAY
public static final int MAY
MONTH
字段的值代表了公历和朱利安日历中的第五个月。- 另请参见:
- Constant Field Values
-
JUNE
public static final int JUNE
MONTH
字段的值代表了公历和朱利安日历中的第六个月。- 另请参见:
- Constant Field Values
-
JULY
public static final int JULY
MONTH
字段的价值,表示今年第七个月在公历和朱利安日历。- 另请参见:
- Constant Field Values
-
AUGUST
public static final int AUGUST
MONTH
领域的价值指示了公历和朱利安日历中的第八个月。- 另请参见:
- Constant Field Values
-
SEPTEMBER
public static final int SEPTEMBER
MONTH
领域的价值指示了公历和朱利安日历中的第九个月。- 另请参见:
- Constant Field Values
-
OCTOBER
public static final int OCTOBER
MONTH
字段的值代表了公历和朱利安日历中的第10个月。- 另请参见:
- Constant Field Values
-
NOVEMBER
public static final int NOVEMBER
MONTH
字段的值代表了公历和朱利安日历中的第十一个月。- 另请参见:
- Constant Field Values
-
DECEMBER
public static final int DECEMBER
MONTH
字段的值表示公历和朱利安日历中的第十二个月。- 另请参见:
- Constant Field Values
-
UNDECIMBER
public static final int UNDECIMBER
MONTH
字段的值表示一年的第十三个月。 虽然GregorianCalendar
不使用这个值,但是月历也是这样。- 另请参见:
- Constant Field Values
-
AM
public static final int AM
AM_PM
字段的值表示从午夜到中午之前的一天的时间。- 另请参见:
- Constant Field Values
-
PM
public static final int PM
AM_PM
字段的值表示从中午到午夜之前的一天中的一段时间。- 另请参见:
- Constant Field Values
-
ALL_STYLES
public static final int ALL_STYLES
一个表示getDisplayNames
的样式说明符,表示所有样式的名称,如“1月”和“1月”。- 从以下版本开始:
- 1.6
- 另请参见:
-
SHORT_FORMAT
,LONG_FORMAT
,SHORT_STANDALONE
,LONG_STANDALONE
,SHORT
,LONG
, Constant Field Values
-
SHORT
public static final int SHORT
- 从以下版本开始:
- 1.6
- 另请参见:
-
SHORT_STANDALONE
,LONG
, Constant Field Values
-
LONG
public static final int LONG
- 从以下版本开始:
- 1.6
- 另请参见:
-
LONG_STANDALONE
,SHORT
, Constant Field Values
-
NARROW_FORMAT
public static final int NARROW_FORMAT
getDisplayName
和getDisplayNames
的样式说明符 ,表示用于格式的窄名称。 狭义名称通常是单个字符串,例如星期一的“M”。- 从以下版本开始:
- 1.8
- 另请参见:
-
NARROW_STANDALONE
,SHORT_FORMAT
,LONG_FORMAT
, Constant Field Values
-
NARROW_STANDALONE
public static final int NARROW_STANDALONE
getDisplayName
和getDisplayNames
的样式说明符独立地表示一个狭义的名称。 狭义名称通常是单个字符串,例如星期一的“M”。- 从以下版本开始:
- 1.8
- 另请参见:
-
NARROW_FORMAT
,SHORT_STANDALONE
,LONG_STANDALONE
, Constant Field Values
-
SHORT_FORMAT
public static final int SHORT_FORMAT
- 从以下版本开始:
- 1.8
- 另请参见:
-
SHORT_STANDALONE
,LONG_FORMAT
,LONG_STANDALONE
, Constant Field Values
-
LONG_FORMAT
public static final int LONG_FORMAT
- 从以下版本开始:
- 1.8
- 另请参见:
-
LONG_STANDALONE
,SHORT_FORMAT
,SHORT_STANDALONE
, Constant Field Values
-
SHORT_STANDALONE
public static final int SHORT_STANDALONE
- 从以下版本开始:
- 1.8
- 另请参见:
-
SHORT_FORMAT
,LONG_FORMAT
,LONG_STANDALONE
, Constant Field Values
-
LONG_STANDALONE
public static final int LONG_STANDALONE
- 从以下版本开始:
- 1.8
- 另请参见:
-
LONG_FORMAT
,SHORT_FORMAT
,SHORT_STANDALONE
, Constant Field Values
-
fields
protected int[] fields
该日历的当前设置时间的日历字段值。 这是一个FIELD_COUNT
整数的数组,索引值为ERA
到DST_OFFSET
。
-
isSet
protected boolean[] isSet
说明是否设置日历的指定日历字段的标志。 一个新对象没有设置字段。 在首次调用生成字段的方法之后,它们都将保持置位。 这是一个FIELD_COUNT
布尔阵列,索引值为ERA
到DST_OFFSET
。
-
time
protected long time
这个日历的当前设定时间,以1970年1月1日,格林尼治标准时间0:00:00之后的毫秒表示。- 另请参见:
-
isTimeSet
-
isTimeSet
protected boolean isTimeSet
如果那么time
的值是有效的。 通过更改field[]
的项目使时间无效。- 另请参见:
-
time
-
areFieldsSet
protected boolean areFieldsSet
如果fields[]
与当前设置的时间同步,fields[]
真。 如果为false,则下一次尝试获取字段的值将强制从当前值time
重新计算所有字段。
-
-
构造方法详细信息
-
Calendar
protected Calendar()
构造具有默认时区和默认FORMAT
语言环境的日历。- 另请参见:
-
TimeZone.getDefault()
-
-
方法详细信息
-
getInstance
public static Calendar getInstance()
使用默认时区和区域设置获取日历。 返回的Calendar
是基于默认时区的当前时间,默认为FORMAT
区域设置。- 结果
- 日历。
-
getInstance
public static Calendar getInstance(TimeZone zone)
使用指定的时区和默认语言环境获取日历。Calendar
返回的是基于给定时区的当前时间,默认为FORMAT
。- 参数
-
zone
- 使用的时区 - 结果
- 日历。
-
getInstance
public static Calendar getInstance(Locale aLocale)
使用默认时区和指定的区域设置获取日历。 返回的Calendar
是基于指定区域设置的默认时区中的当前时间。- 参数
-
aLocale
- 周数据的区域设置 - 结果
- 日历。
-
getInstance
public static Calendar getInstance(TimeZone zone, Locale aLocale)
获取具有指定时区和区域设置的日历。 返回的Calendar
是基于给定时区的当前时间与给定的区域设置。- 参数
-
zone
- 使用的时区 -
aLocale
- 周数据的区域设置 - 结果
- 日历。
-
getAvailableLocales
public static Locale[] getAvailableLocales()
返回所有语言环境的数组,该类的getInstance
方法可以返回本地化实例。 返回的数组必须至少包含一个等于Locale.US
的Locale
实例。- 结果
-
一组可用本地化
Calendar
实例的区域设置。
-
computeTime
protected abstract void computeTime()
- 另请参见:
-
complete()
,computeFields()
-
computeFields
protected abstract void computeFields()
- 另请参见:
-
computeTime()
-
getTime
public final Date getTime()
- 结果
-
一个表示时间值的
Date
。 - 另请参见:
-
setTime(Date)
,getTimeInMillis()
-
setTime
public final void setTime(Date date)
使用给定的Date
设置此日历的时间。注意:调用
setTime()
与Date(Long.MAX_VALUE)
或者Date(Long.MIN_VALUE)
可能产生不正确的字段值get()
。- 参数
-
date
- 给定的日期。 - 另请参见:
-
getTime()
,setTimeInMillis(long)
-
getTimeInMillis
public long getTimeInMillis()
以毫秒为单位返回此日历的时间值。- 结果
- 当前时间为UTC的毫秒数。
- 另请参见:
-
getTime()
,setTimeInMillis(long)
-
setTimeInMillis
public void setTimeInMillis(long millis)
从给定的长值设置此日历的当前时间。- 参数
-
millis
- 从时代以UTC为单位的新时间。 - 另请参见:
-
setTime(Date)
,getTimeInMillis()
-
get
public int get(int field)
返回给定日历字段的值。 在宽大模式下,所有日历字段都被归一化。 在非宽泛模式下,所有日历字段都被验证,如果任何日历字段具有超出范围的值,该方法将抛出异常。 归一化和验证由complete()
方法处理,该过程是与日历系统相关的。- 参数
-
field
- 给定的日历字段。 - 结果
- 给定日历字段的值。
- 异常
-
ArrayIndexOutOfBoundsException
- 如果指定的字段超出范围(field < 0 || field >= FIELD_COUNT
)。 - 另请参见:
-
set(int,int)
,complete()
-
internalGet
protected final int internalGet(int field)
返回给定日历字段的值。 该方法不涉及字段值的归一化或验证。- 参数
-
field
- 给定的日历字段。 - 结果
- 给定日历字段的值。
- 另请参见:
-
get(int)
-
set
public void set(int field, int value)
将给定的日历字段设置为给定的值。 该方法不会解释该值,无论宽恕方式如何。- 参数
-
field
- 给定的日历字段。 -
value
- 为给定日历字段设置的值。 - 异常
-
ArrayIndexOutOfBoundsException
- 如果指定的字段超出范围(field < 0 || field >= FIELD_COUNT
)。 在非宽松模式下。 - 另请参见:
-
set(int,int,int)
,set(int,int,int,int,int)
,set(int,int,int,int,int,int)
,get(int)
-
set
public final void set(int year, int month, int date)
- 参数
-
year
- 用于设置YEAR
日历字段的值。 -
month
- 用于设置MONTH
日历字段的值。 月值为0。 例如,1月份为0。 -
date
- 用于设置DAY_OF_MONTH
日历字段的值。 - 另请参见:
-
set(int,int)
,set(int,int,int,int,int)
,set(int,int,int,int,int,int)
-
set
public final void set(int year, int month, int date, int hourOfDay, int minute)
- 参数
-
year
- 用于设置YEAR
日历字段的值。 -
month
- 用于设置MONTH
日历字段的值。 月值为0。 例如,1月份为0。 -
date
- 用于设置DAY_OF_MONTH
日历字段的值。 -
hourOfDay
- 用于设置HOUR_OF_DAY
日历字段的值。 -
minute
- 用于设置MINUTE
日历字段的值。 - 另请参见:
-
set(int,int)
,set(int,int,int)
,set(int,int,int,int,int,int)
-
set
public final void set(int year, int month, int date, int hourOfDay, int minute, int second)
设置字段中的值YEAR
,MONTH
,DAY_OF_MONTH
,HOUR_OF_DAY
,MINUTE
,并SECOND
。 保留其他字段的以前的值。 如果不希望, 请先拨打clear()
。- 参数
-
year
- 用于设置YEAR
日历字段的值。 -
month
- 用于设置MONTH
日历字段的值。 月值为0。 例如,1月份为0。 -
date
- 用于设置DAY_OF_MONTH
日历字段的值。 -
hourOfDay
- 用于设置HOUR_OF_DAY
日历字段的值。 -
minute
- 用于设置MINUTE
日历字段的值。 -
second
- 用于设置SECOND
日历字段的值。 - 另请参见:
-
set(int,int)
,set(int,int,int)
,set(int,int,int,int,int)
-
clear
public final void clear()
将所有的日历字段值和时间值(毫秒从偏移Epoch如此)Calendar
不确定。 这意味着isSet()
将为所有日历字段返回false
,并且日期和时间计算将会将这些字段视为未被设置。Calendar
实现类可以使用其特定的默认字段值进行日期/时间计算。 例如,如果YEAR
字段值未定义,则GregorianCalendar
使用1970。- 另请参见:
-
clear(int)
-
clear
public final void clear(int field)
设置给定的日历字段值和Calendar
未定义的时间值( Epoch的毫秒偏移量)。 这意味着isSet(field)
将返回false
,日期和时间计算将会将该字段视为未被设置。 ACalendar
实现类可以使用字段的特定默认值进行日期和时间计算。的
HOUR_OF_DAY
,HOUR
和AM_PM
字段独立地处理,并且the resolution rule for the time of day被应用。 清除其中一个字段不会重置此Calendar
的小时值。 使用set(Calendar.HOUR_OF_DAY, 0)
重置小时值。- 参数
-
field
- 要清除的日历字段。 - 另请参见:
-
clear()
-
isSet
public final boolean isSet(int field)
确定给定的日历字段是否具有值集,包括通过由get
方法调用触发的内部字段计算设置的值的情况。- 参数
-
field
- 要测试的日历字段 - 结果
-
true
如果给定的日历字段有一个值设置; 否则为false
。
-
getDisplayName
public String getDisplayName(int field, int style, Locale locale)
返回给定的style
和locale
中的日历field
的字符串表示locale
。 如果不适用字符串表示,则返回null
。 如果字符串表示适用于给定的日历field
此方法调用get(field)
获取日历field
值。例如,如果这个
Calendar
是GregorianCalendar
,其日期是2005-01-01,那么MONTH
字段的字符串表示形式将是英文区域设置中的长形式的“1月”或短格式的“Jan”。 但是,DAY_OF_MONTH
字段不能使用字符串表示形式,此方法将返回null
。默认实现支持其中的日历字段
DateFormatSymbols
在给定的名字locale
。- 参数
-
field
- 返回字符串表示形式的日历字段 -
style
- 应用于字符串表示形式的样式; 之一SHORT_FORMAT
(SHORT
),SHORT_STANDALONE
,LONG_FORMAT
(LONG
),LONG_STANDALONE
,NARROW_FORMAT
,或NARROW_STANDALONE
。 -
locale
- 字符串表示的区域设置(由locale
指定的任何日历类型都将被忽略) - 结果
-
给定的
field
在给定的style
字符串表示,或null
如果没有字符串表示是适用的。 - 异常
-
IllegalArgumentException
- 如果field
或style
无效,或者如果此Calendar
不宽容,并且任何日历字段都有无效值 -
NullPointerException
- 如果locale
为空 - 从以下版本开始:
- 1.6
-
getDisplayNames
public Map<String,Integer> getDisplayNames(int field, int style, Locale locale)
返回一个Map
其中包含给定的style
和locale
中的日历field
所有名称及其对应的字段值。 例如,如果这个Calendar
是GregorianCalendar
,那么返回的地图将包含“Jan”到JANUARY
,“Feb”到FEBRUARY
,依此类推,在英文语言环境中的short样式中。由于使用单个字符(例如星期日和星期六的“S”),狭义名称可能不是唯一的。 在这种情况下,缩小的名称不包括在返回的
Map
。可以考虑其他日历字段的值来确定一组显示名称。 例如,如果这个
Calendar
是月历日历系统,并且由YEAR
字段给出的年值具有闰月,则此方法将返回包含闰月名称的月份名称,并将月份名称映射到其特定于该年份的值。默认实现支持包含在
DateFormatSymbols
中的显示名称。 例如,如果field
为MONTH
,而style
为ALL_STYLES
,则此方法返回一个Map
其中包含DateFormatSymbols.getShortMonths()
和DateFormatSymbols.getMonths()
返回的所有字符串。- 参数
-
field
- 显示名称返回的日历字段 -
style
- 应用于字符串表示形式的样式; 之一SHORT_FORMAT
(SHORT
),SHORT_STANDALONE
,LONG_FORMAT
(LONG
),LONG_STANDALONE
,NARROW_FORMAT
,或NARROW_STANDALONE
-
locale
- 显示名称的区域设置 - 结果
-
一个
Map
包含在所有显示名称style
和locale
和它们的字段值,或null
,如果没有显示名称为定义field
- 异常
-
IllegalArgumentException
- 如果field
或style
无效,或者如果此Calendar
不宽容,并且任何日历字段都有无效值 -
NullPointerException
- 如果locale
为空 - 从以下版本开始:
- 1.6
-
complete
protected void complete()
填写日历字段中的任何未设置的字段。 首先,如果没有从日历字段值计算时间值(从Epoch的毫秒偏移量),则调用computeTime()
方法。 然后,调用computeFields()
方法来计算所有日历字段值。
-
getAvailableCalendarTypes
public static Set<String> getAvailableCalendarTypes()
返回一个不可修改的Set
包含运行时环境中Calendar
支持的所有日历类型。 可用的日历类型可以用于Unicode locale extensions 。 返回的Set
至少包含"gregory"
。 日历类型不包括别名,例如"gregorian"
for"gregory"
。- 结果
-
一个不可修改的
Set
包含所有可用的日历类型 - 从以下版本开始:
- 1.8
- 另请参见:
-
getCalendarType()
,Calendar.Builder.setCalendarType(String)
,Locale.getUnicodeLocaleType(String)
-
getCalendarType
public String getCalendarType()
返回此Calendar
的日历类型。 日历类型由Unicode区域设置数据标记语言(LDML)规范定义。此方法的默认实现返回此
Calendar
实例的类名。 任何实现LDML定义的日历系统的子类都应该覆盖此方法以返回适当的日历类型。- 结果
-
LDML定义的日历类型或此
Calendar
实例的类名称 - 从以下版本开始:
- 1.8
- 另请参见:
-
Locale extensions ,
Locale.Builder.setLocale(Locale)
,Locale.Builder.setUnicodeLocaleKeyword(String, String)
-
equals
public boolean equals(Object obj)
将此Calendar
与指定的Object
。 结果是true
当且仅当参数是同一个日历系统的Calendar
对象,该对象表示与此对象相同的Calendar
参数的相同时间值(与Epoch的毫秒偏移量)。的
Calendar
参数是由表示的值isLenient
,getFirstDayOfWeek
,getMinimalDaysInFirstWeek
和getTimeZone
方法。 如果两个Calendar
之间的参数有差异,则此方法返回false
。使用
compareTo
方法只比较时间值。- 重写:
-
equals
在Object
- 参数
-
obj
- 要比较的对象。 - 结果
-
true
如果这个对象等于obj
; 否则为false
。 - 另请参见:
-
Object.hashCode()
,HashMap
-
hashCode
public int hashCode()
返回此日历的哈希码。- 重写:
-
hashCode
在Object
- 结果
- 该对象的哈希码值。
- 从以下版本开始:
- 1.2
- 另请参见:
-
Object.equals(java.lang.Object)
,System.identityHashCode(java.lang.Object)
-
before
public boolean before(Object when)
返回这个Calendar
是否代表指定的Object
表示的时间之前的时间。 此方法相当于:compareTo(when) < 0
when
为Calendar
实例时。 否则,该方法返回false
。- 参数
-
when
- 要比较的Object
- 结果
-
true
,如果此时Calendar
是由下式表示的时间之前when
; 否则为false
。 - 另请参见:
-
compareTo(Calendar)
-
after
public boolean after(Object when)
返回Calendar
是否表示在指定的Object
表示的时间之后的时间。 此方法相当于:compareTo(when) > 0
when
为Calendar
实例时。 否则,该方法返回false
。- 参数
-
when
- 要比较的Object
- 结果
-
true
如果这个Calendar
的时间是在when
表示的时间之后; 否则为false
。 - 另请参见:
-
compareTo(Calendar)
-
compareTo
public int compareTo(Calendar anotherCalendar)
比较两个Calendar
对象所代表的时间值( Epoch的毫秒偏移量)。- Specified by:
-
compareTo
在接口Comparable<Calendar>
- 参数
-
anotherCalendar
- 要比较的Calendar
。 - 结果
-
值
0
如果由所述参数表示的时间等于由此表示的时间Calendar
; 一个值小于0
如果这个Calendar
的时间在参数表示的时间之前; 如果此Calendar
的时间在参数表示的时间之后,则值大于0
。 - 异常
-
NullPointerException
- 如果指定的Calendar
是null
。 -
IllegalArgumentException
- 如果由于任何无效日历值而无法获取指定的Calendar
对象的时间值。 - 从以下版本开始:
- 1.5
-
add
public abstract void add(int field, int amount)
根据日历的规则,将指定的时间量添加或减去给定的日历字段。 例如,要从当前日历的时间减去5天,您可以通过调用以下方法来实现:add(Calendar.DAY_OF_MONTH, -5)
。- 参数
-
field
- 日历字段。 -
amount
- 要添加到该字段的日期或时间的数量。 - 另请参见:
-
roll(int,int)
,set(int,int)
-
roll
public abstract void roll(int field, boolean up)
在给定时间字段上添加或减少单个时间单位,而不改变较大的字段。 例如,要将当前日期推迟一天,您可以通过以下方式实现:roll(Calendar.DATE,true)。 当年滚动或Calendar.YEAR字段时,它将滚动年值在1和通过调用
getMaximum(Calendar.YEAR)
返回的值之间的范围。 当月滚动或Calendar.MONTH字段时,其他字段如date可能会冲突,需要更改。 例如,在01/31/96日期滚动的月份将在02/29/96。 在日历或Calendar.HOUR_OF_DAY字段中滚动时,它将滚动小时值,范围在0到23之间,这是从零开始的。- 参数
-
field
- 时间字段。 -
up
- 指示指定时间字段的值是要卷起还是滚动。 如果卷起,请使用true,否则为false。 - 另请参见:
-
add(int,int)
,set(int,int)
-
roll
public void roll(int field, int amount)
将指定(签名)金额添加到指定的日历字段,而不更改较大的字段。 负数意味着滚降。注意:
Calendar
上的默认实现只是重复调用一个单位的roll()
版本。 这可能不总是做正确的事情。 例如,如果DAY_OF_MONTH
字段为31,则滚动到二月将会将其设置为28.该功能的GregorianCalendar
版本负责处理此问题。 其他子类也应该提供这个功能的覆盖,做正确的事情。- 参数
-
field
- 日历字段。 -
amount
- 加入日历的签名金额field
。 - 从以下版本开始:
- 1.2
- 另请参见:
-
roll(int,boolean)
,add(int,int)
,set(int,int)
-
setTimeZone
public void setTimeZone(TimeZone value)
以给定的时区值设置时区。- 参数
-
value
- 给定的时区。
-
getTimeZone
public TimeZone getTimeZone()
获取时区。- 结果
- 与该日历相关联的时区对象。
-
setLenient
public void setLenient(boolean lenient)
指定日期/时间解释是否宽松。 宽松的解释,例如“1996年2月9日”,将被视为等同于1996年2月1日以后的第941天。以严格(不宽容的)解释,这样的日期会引起异常。 默认是宽松的。- 参数
-
lenient
-true
如果宽大模式要打开;false
如果要关闭。 - 另请参见:
-
isLenient()
,DateFormat.setLenient(boolean)
-
isLenient
public boolean isLenient()
告诉日期/时间的解释是否宽松。- 结果
-
true
如果本日历的解释模式宽松;false
否则。 - 另请参见:
-
setLenient(boolean)
-
setFirstDayOfWeek
public void setFirstDayOfWeek(int value)
设置一周的第一天是什么? 例如,SUNDAY
在美国,MONDAY
在法国。- 参数
-
value
- 一周中给定的第一天。 - 另请参见:
-
getFirstDayOfWeek()
,getMinimalDaysInFirstWeek()
-
getFirstDayOfWeek
public int getFirstDayOfWeek()
得到一周的第一天是什么 例如,SUNDAY
在美国,MONDAY
在法国。- 结果
- 一周的第一天。
- 另请参见:
-
setFirstDayOfWeek(int)
,getMinimalDaysInFirstWeek()
-
setMinimalDaysInFirstWeek
public void setMinimalDaysInFirstWeek(int value)
设定一年中第一个星期所需的最短时间是多少? 例如,如果第一周被定义为包含一年中第一个月的第一天的第一个星期,请将该方法称为值1.如果必须是整周,请使用值7。- 参数
-
value
- 一年中第一周所需的最短日期。 - 另请参见:
-
getMinimalDaysInFirstWeek()
-
getMinimalDaysInFirstWeek
public int getMinimalDaysInFirstWeek()
获得一年中第一周所需的最低限度的日子; 例如,如果第一周被定义为包含一年中第一个月的第一天的方法,则此方法返回1.如果所需的最小天数必须是整周,则此方法返回7。- 结果
- 在一年的第一周所需的最低限度的日子。
- 另请参见:
-
setMinimalDaysInFirstWeek(int)
-
isWeekDateSupported
public boolean isWeekDateSupported()
返回此Calendar
是否支持周日期。此方法的默认实现将返回
false
。- 结果
-
true
如果这个Calendar
支持周日期; 否则为false
。 - 从以下版本开始:
- 1.7
- 另请参见:
-
getWeekYear()
,setWeekDate(int,int,int)
,getWeeksInWeekYear()
-
getWeekYear
public int getWeekYear()
返回此Calendar
代表的Calendar
。 周周与周周期同步。 first day of the first week是本周的第一天。此方法的默认实现会抛出一个
UnsupportedOperationException
。- 结果
-
这个
Calendar
- 异常
-
UnsupportedOperationException
- 如果这个Calendar
不支持任何一周的编号。 - 从以下版本开始:
- 1.7
- 另请参见:
-
isWeekDateSupported()
,getFirstDayOfWeek()
,getMinimalDaysInFirstWeek()
-
setWeekDate
public void setWeekDate(int weekYear, int weekOfYear, int dayOfWeek)
设置这个Calendar
的日期与给定的日期说明符 - 周年,年周和星期几。与
set
方法不同,所有日历字段和time
值都将在退货时计算。如果
weekOfYear
中的有效周期范围weekYear
,则weekYear
和weekOfYear
值均以宽松模式进行调整,或者在非宽松模式下抛出IllegalArgumentException
。此方法的默认实现会抛出一个
UnsupportedOperationException
。- 参数
-
weekYear
- 周年 -
weekOfYear
- 周数基于weekYear
-
dayOfWeek
- 星期几值:DAY_OF_WEEK
字段的常量之一:SUNDAY
,...,SATURDAY
。 - 异常
-
IllegalArgumentException
- 如果任何给定的日期说明符无效或任何日历字段与非宽松模式中的给定日期说明符不一致 -
UnsupportedOperationException
- 如果这个Calendar
不支持任何一周的编号。 - 从以下版本开始:
- 1.7
- 另请参见:
-
isWeekDateSupported()
,getFirstDayOfWeek()
,getMinimalDaysInFirstWeek()
-
getWeeksInWeekYear
public int getWeeksInWeekYear()
返回由Calendar
表示的周年中的周Calendar
。此方法的默认实现会抛出一个
UnsupportedOperationException
。- 结果
- 在一周的星期数。
- 异常
-
UnsupportedOperationException
- 如果这个Calendar
不支持任何一周的编号。 - 从以下版本开始:
- 1.7
- 另请参见:
-
WEEK_OF_YEAR
,isWeekDateSupported()
,getWeekYear()
,getActualMaximum(int)
-
getMinimum
public abstract int getMinimum(int field)
- 参数
-
field
- 日历字段。 - 结果
- 给定日历字段的最小值。
- 另请参见:
-
getMaximum(int)
,getGreatestMinimum(int)
,getLeastMaximum(int)
,getActualMinimum(int)
,getActualMaximum(int)
-
getMaximum
public abstract int getMaximum(int field)
- 参数
-
field
- 日历字段。 - 结果
- 给定日历字段的最大值。
- 另请参见:
-
getMinimum(int)
,getGreatestMinimum(int)
,getLeastMaximum(int)
,getActualMinimum(int)
,getActualMaximum(int)
-
getGreatestMinimum
public abstract int getGreatestMinimum(int field)
- 参数
-
field
- 日历字段。 - 结果
- 给定日历字段的最低最小值。
- 另请参见:
-
getMinimum(int)
,getMaximum(int)
,getLeastMaximum(int)
,getActualMinimum(int)
,getActualMaximum(int)
-
getLeastMaximum
public abstract int getLeastMaximum(int field)
返回此Calendar
实例的给定日历字段的最低最大值。 最低最大值定义为getActualMaximum(int)
为任何可能的时间值返回的最小值 。 最小值取决于实例的日历系统特定参数。 例如,Calendar
的公历日历系统为DAY_OF_MONTH
字段返回28,因为第28个是这个日历最短的月份的最后一天,2月份在一个普通的年份。- 参数
-
field
- 日历字段。 - 结果
- 给定日历字段的最低最大值。
- 另请参见:
-
getMinimum(int)
,getMaximum(int)
,getGreatestMinimum(int)
,getActualMinimum(int)
,getActualMaximum(int)
-
getActualMinimum
public int getActualMinimum(int field)
给定此Calendar
的时间值,返回指定日历字段可能具有的Calendar
。该方法的默认实现使用迭代算法来确定日历字段的实际最小值。 如果可能,子类应该用更有效的实现来覆盖它 - 在许多情况下,它们可以简单地返回
getMinimum()
。- 参数
-
field
- 日历字段 - 结果
-
给定的日期字段的最小值为
Calendar
的时间值 - 从以下版本开始:
- 1.2
- 另请参见:
-
getMinimum(int)
,getMaximum(int)
,getGreatestMinimum(int)
,getLeastMaximum(int)
,getActualMaximum(int)
-
getActualMaximum
public int getActualMaximum(int field)
给定此Calendar
的时间值,返回指定日历字段可能具有的Calendar
。 例如,MONTH
字段的实际最大值在一些年份为12,在希伯来语日历系统中的其他年份为13。该方法的默认实现使用迭代算法来确定日历字段的实际最大值。 如果可能,子类应该用更有效的实现来覆盖它。
- 参数
-
field
- 日历字段 - 结果
-
给定日历字段的最大值为此
Calendar
的时间值 - 从以下版本开始:
- 1.2
- 另请参见:
-
getMinimum(int)
,getMaximum(int)
,getGreatestMinimum(int)
,getLeastMaximum(int)
,getActualMinimum(int)
-
toString
public String toString()
返回此日历的字符串表示形式。 此方法仅用于调试目的,并且返回的字符串的格式可能因实现而异。 返回的字符串可能为空,但可能不是null
。
-
-