- java.lang.Object
-
- java.util.Calendar
-
- 实现的所有接口
-
Serializable
,Cloneable
,Comparable<Calendar>
- 已知直接子类:
-
GregorianCalendar
public abstract class Calendarextends Objectimplements Serializable, Cloneable, Comparable<Calendar>
所述Calendar
类是一个抽象类,可以为在某一特定时刻和一组之间的转换的方法calendar fields
如YEAR
,MONTH
,DAY_OF_MONTH
,HOUR
,等等,以及用于操纵该日历字段,如获取的日期下个星期。 瞬间可以用毫秒值表示,该值是1970年1月1日格林威治标准时间1970年1月1日00:00:00,000(格里高利)的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
重新计算返回Calendar
日历字段值时,get()
所有日历字段进行规范化。 例如,宽松GregorianCalendar
解释MONTH == JANUARY
,DAY_OF_MONTH == 32
如2月1日。当
Calendar
处于非宽松模式时,如果其日历字段中存在任何不一致,则会抛出异常。 例如,GregorianCalendar
始终生成介于1和月长之间的DAY_OF_MONTH
值。 如果已设置任何超出范围的字段值,则非宽松GregorianCalendar
在计算其时间或日历字段值时抛出异常。First Week
Calendar
使用两个参数定义特定于语言环境的七天工作周:一周的第一天和第一周的最小天数(从1到7)。 当构造Calendar
时,这些数字取自语言环境资源数据或语言环境本身。 如果指定的区域设置包含“fw”和/或“rg” Unicode extensions ,则将根据这些扩展名获取一周的第一天。 如果同时指定了“fw”和“rg”,则“fw”扩展名中的值将取代“rg”扩展名中的隐含值。 它们也可以通过设置其值的方法明确指定。设置或获取
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是第二天的第一分钟。 因此,1999年12月31日23:59 <2000年1月1日00:00 <00:01,2000年1月1日。
- 虽然历史上不准确,午夜也属于“上午”,中午属于“下午”,所以在同一天,凌晨12:00(午夜)<12:01 am,中午12:00(中午)<12 :01 pm
日期或时间格式字符串不是日历定义的一部分,因为用户必须在运行时可修改或覆盖这些字符串。 使用
DateFormat
格式化日期。野外操纵
:日历字段可以用三种方法来改变set()
,add()
和roll()
。set(f, value)
改变日历字段f
至value
。 此外,它设置内部成员变量以指示日历字段f
已更改。 尽管日历字段f
立即更改,以毫秒为单位日历的时间值不重新计算,直到下一次调用get()
,getTime()
,getTimeInMillis()
,add()
,或roll()
而成。 因此,对set()
多次调用不会触发多次不必要的计算。 作为使用set()
更改日历字段的结果,其他日历字段也可能会更改,具体取决于日历字段,日历字段值和日历系统。 此外,get(f)
不一定返回value
通过电话设置到set
方法日历字段已重新计算后。 具体情况由具体的日历类决定。例如 :考虑
GregorianCalendar
最初被设置为1999调用8月31日,set(Calendar.MONTH, Calendar.SEPTEMBER)
集日至9月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月份的GregorianCalendar
,因此添加规则2将DAY_OF_MONTH
设置为最接近的可能值。 虽然它是一个较小的字段,DAY_OF_WEEK
规则2没有对DAY_OF_WEEK
进行调整,因为当月份在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
-
-
嵌套类汇总
嵌套类 变量和类型 类 描述 static class
Calendar.Builder
Calendar.Builder
用于从各种日期时间参数创建Calendar
。
-
字段汇总
字段 变量和类型 字段 描述 static int
ALL_STYLES
getDisplayNames
的样式说明符,指示所有样式中的名称,例如“January”和“Jan”。static int
AM
AM_PM
字段的值,表示从午夜到正午之前的一天的时段。static int
AM_PM
get
和set
字段编号表示HOUR
是在中午之前还是之后。static int
APRIL
MONTH
字段的值,表示格里高利和朱利安日历中一年中的第四个月。protected boolean
areFieldsSet
如果fields[]
与当前设置的时间同步,fields[]
True。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
字段编号表示当年的日期编号。static int
DECEMBER
MONTH
字段的值,表示格里高利和朱利安日历中的一年中的第十二个月。static int
DST_OFFSET
get
和set
字段编号,指示夏令时偏移量(以毫秒为单位)。static int
ERA
get
和set
字段编号表示时代,例如Julian日历中的AD或BC。static int
FEBRUARY
MONTH
字段的值,表示格里高利和朱利安日历中一年中的第二个月。static int
FIELD_COUNT
get
和set
识别的不同字段的数量。protected int[]
字段
此日历的当前设置时间的日历字段值。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
的值有效time
真。static int
JANUARY
MONTH
字段的值,表示Gregorian和Julian日历中一年中的第一个月。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
字段的值,表示Gregorian和Julian日历中一年中的第五个月。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
static int
NOVEMBER
MONTH
字段的值,表示格里高利和朱利安日历中一年中的第11个月。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
字段的值,表示一年中的第13个月。static int
WEDNESDAY
DAY_OF_WEEK
字段的值表示星期三。static int
WEEK_OF_MONTH
get
和set
字段编号,get
set
的周数。static int
WEEK_OF_YEAR
get
和set
字段编号表示当前年份的周数。static int
YEAR
字段编号为get
和set
表示年份。static int
ZONE_OFFSET
get
和set
字段编号,表示与GMT的原始偏移(以毫秒为单位)。
-
方法摘要
所有方法 静态方法 实例方法 抽象方法 具体的方法 变量和类型 方法 描述 abstract void
add(int field, int amount)
根据日历的规则,将指定的时间量添加或减去给定的日历字段。boolean
after(Object when)
返回此Calendar
是否表示指定的Object
表示的时间之后的时间。boolean
before(Object when)
返回此Calendar
是否表示指定的Object
代表的时间之前的时间。void
clear()
设置此Calendar
未定义的所有日历字段值和时间值(距离 Epoch的毫秒偏移量)。void
clear(int field)
设置此Calendar
未定义的给定日历字段值和时间值(距离 Epoch的毫秒偏移量)。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
方法可以getInstance
返回本地化实例。String
getCalendarType()
返回此Calendar
的日历类型。String
getDisplayName(int field, int style, Locale locale)
返回给定style
和locale
日历字段
值的字符串表示locale
。Map<String,Integer>
getDisplayNames(int field, int style, Locale locale)
返回Map
其中包含给定style
和locale
日历字段
所有名称及其对应的字段值。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()
以毫秒为单位返回此Calendar的时间值。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)
从给定的long值设置此Calendar的当前时间。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
字段编号表示时代,例如Julian日历中的AD或BC。 这是特定于日历的值; 请参阅子类文档。- 另请参见:
-
GregorianCalendar.AD
,GregorianCalendar.BC
, 常数字段值
-
YEAR
public static final int YEAR
get
和set
字段编号表示年份。 这是特定于日历的值; 请参阅子类文档。- 另请参见:
- 常数字段值
-
MONTH
public static final int MONTH
get
和set
字段编号表示月份。 这是特定于日历的值。 格里高利和朱利安日历中的第一个月是JANUARY
,即0; 最后一个取决于一年中的月数。
-
WEEK_OF_YEAR
public static final int WEEK_OF_YEAR
get
和set
字段编号表示当年的周数。 由getFirstDayOfWeek()
和getMinimalDaysInFirstWeek()
定义的一年中的第一周具有值1.子类定义在一年的第一周之前的天数WEEK_OF_YEAR
的值。
-
WEEK_OF_MONTH
public static final int WEEK_OF_MONTH
get
和set
字段编号表示get
的周数。 由getFirstDayOfWeek()
和getMinimalDaysInFirstWeek()
定义的月份的第一周具有值1.子类定义在该月的第一周之前的天数的值WEEK_OF_MONTH
。
-
DATE
public static final int DATE
get
和set
字段编号表示当月的日期。 这是DAY_OF_MONTH
的同义词。 该月的第一天的价值为1。- 另请参见:
-
DAY_OF_MONTH
, 常数字段值
-
DAY_OF_MONTH
public static final int DAY_OF_MONTH
get
和set
字段编号表示当月的日期。 这是DATE
的同义词。 该月的第一天的价值为1。
-
DAY_OF_YEAR
public static final int DAY_OF_YEAR
get
和set
字段编号表示当年的日期编号。 一年的第一天价值1。- 另请参见:
- 常数字段值
-
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
, 常数字段值
-
AM_PM
public static final int AM_PM
get
和set
字段编号表示HOUR
是在中午之前还是之后。 例如,在下午10:04:AM_PM
是PM
。
-
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
, 常数字段值
-
HOUR_OF_DAY
public static final int HOUR_OF_DAY
get
和set
字段编号表示当天的小时。HOUR_OF_DAY
用于24小时制。 例如,在下午10:04:HOUR_OF_DAY
是22。
-
MINUTE
public static final int MINUTE
get
和set
字段编号表示小时内的分钟。 例如,在下午10:04:MINUTE
是4。- 另请参见:
- 常数字段值
-
SECOND
public static final int SECOND
get
和set
字段编号表示分钟内的第二个。 例如,在下午10:04:SECOND
是15。- 另请参见:
- 常数字段值
-
MILLISECOND
public static final int MILLISECOND
get
和set
字段编号表示秒内的毫秒数。 例如,在下午10:04:MILLISECOND
是250。- 另请参见:
- 常数字段值
-
ZONE_OFFSET
public static final int ZONE_OFFSET
get
和set
字段编号指示GMT的原始偏移(以毫秒为单位)。如果
TimeZone
实现子类支持历史GMT偏移量更改,则此字段反映此Calendar
的时区的正确GMT偏移值。- 另请参见:
- 常数字段值
-
DST_OFFSET
public static final int DST_OFFSET
get
和set
字段编号,指示夏令时偏移量(以毫秒为单位)。如果
TimeZone
实施子类支持历史夏令时时间表更改,则此字段反映此Calendar
的时区的正确夏令时偏移值。- 另请参见:
- 常数字段值
-
FIELD_COUNT
public static final int FIELD_COUNT
get
和set
识别的不同字段数。 字段编号范围为0..FIELD_COUNT-1
。- 另请参见:
- 常数字段值
-
SUNDAY
public static final int SUNDAY
表示星期日的DAY_OF_WEEK
字段的值。- 另请参见:
- 常数字段值
-
MONDAY
public static final int MONDAY
DAY_OF_WEEK
字段的值表示星期一。- 另请参见:
- 常数字段值
-
TUESDAY
public static final int TUESDAY
表示星期二的DAY_OF_WEEK
字段的值。- 另请参见:
- 常数字段值
-
WEDNESDAY
public static final int WEDNESDAY
DAY_OF_WEEK
字段的值表示星期三。- 另请参见:
- 常数字段值
-
THURSDAY
public static final int THURSDAY
DAY_OF_WEEK
字段的值表示星期四。- 另请参见:
- 常数字段值
-
FRIDAY
public static final int FRIDAY
表示星期五的DAY_OF_WEEK
字段的值。- 另请参见:
- 常数字段值
-
SATURDAY
public static final int SATURDAY
表示星期六的DAY_OF_WEEK
字段的值。- 另请参见:
- 常数字段值
-
UNDECIMBER
public static final int UNDECIMBER
MONTH
字段的值,表示一年中的第13个月。 虽然GregorianCalendar
不使用此值,但是月历会这样做。- 另请参见:
- 常数字段值
-
ALL_STYLES
public static final int ALL_STYLES
getDisplayNames
的样式说明符,表示所有样式的名称,例如“January”和“Jan”。- 从以下版本开始:
- 1.6
- 另请参见:
-
SHORT_FORMAT
,LONG_FORMAT
,SHORT_STANDALONE
,LONG_STANDALONE
,SHORT
,LONG
, 常数字段值
-
SHORT
public static final int SHORT
- 从以下版本开始:
- 1.6
- 另请参见:
-
SHORT_STANDALONE
,LONG
, 常数字段值
-
LONG
public static final int LONG
- 从以下版本开始:
- 1.6
- 另请参见:
-
LONG_STANDALONE
,SHORT
, 常数字段值
-
NARROW_FORMAT
public static final int NARROW_FORMAT
getDisplayName
和getDisplayNames
的样式说明符 ,指示用于格式的窄名称。 窄名称通常是单个字符串,例如星期一的“M”。- 从以下版本开始:
- 1.8
- 另请参见:
-
NARROW_STANDALONE
,SHORT_FORMAT
,LONG_FORMAT
, 常数字段值
-
NARROW_STANDALONE
public static final int NARROW_STANDALONE
getDisplayName
和getDisplayNames
的样式说明符 , 独立指示窄名称。 窄名称通常是单个字符串,例如星期一的“M”。- 从以下版本开始:
- 1.8
- 另请参见:
-
NARROW_FORMAT
,SHORT_STANDALONE
,LONG_STANDALONE
, 常数字段值
-
SHORT_FORMAT
public static final int SHORT_FORMAT
- 从以下版本开始:
- 1.8
- 另请参见:
-
SHORT_STANDALONE
,LONG_FORMAT
,LONG_STANDALONE
, 常数字段值
-
LONG_FORMAT
public static final int LONG_FORMAT
- 从以下版本开始:
- 1.8
- 另请参见:
-
LONG_STANDALONE
,SHORT_FORMAT
,SHORT_STANDALONE
, 常数字段值
-
SHORT_STANDALONE
public static final int SHORT_STANDALONE
- 从以下版本开始:
- 1.8
- 另请参见:
-
SHORT_FORMAT
,LONG_FORMAT
,LONG_STANDALONE
, 常数字段值
-
LONG_STANDALONE
public static final int LONG_STANDALONE
- 从以下版本开始:
- 1.8
- 另请参见:
-
LONG_FORMAT
,SHORT_FORMAT
,SHORT_STANDALONE
, 常数字段值
-
字段
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
的值有效time
真。 通过更改项目field[]
使时间无效。- 另请参见:
-
time
-
areFieldsSet
protected boolean areFieldsSet
如果fields[]
与当前设置的时间同步,fields[]
True。 如果为false,则下一次获取字段值的尝试将强制重新计算当前值time
的所有字段。
-
-
构造方法详细信息
-
Calendar
protected Calendar()
使用默认时区和默认的FORMAT
语言环境构造日历。- 另请参见:
-
TimeZone.getDefault()
-
-
方法详细信息
-
getInstance
public static Calendar getInstance()
- 结果
- 日历。
-
getInstance
public static Calendar getInstance(TimeZone zone)
使用指定的时区和默认语言环境获取日历。 返回的Calendar
基于给定时区中的当前时间,具有默认的FORMAT
语言环境。- 参数
-
zone
- 要使用的时区 - 结果
- 日历。
-
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
设置此日历的时间。注意:使用
Date(Long.MAX_VALUE)
或Date(Long.MIN_VALUE)
调用setTime()
可能会从get()
产生不正确的字段值。- 参数
-
date
- 给定日期。 - 另请参见:
-
getTime()
,setTimeInMillis(long)
-
getTimeInMillis
public long getTimeInMillis()
以毫秒为单位返回此Calendar的时间值。- 结果
- 从纪元开始的当前时间为UTC毫秒。
- 另请参见:
-
getTime()
,setTimeInMillis(long)
-
setTimeInMillis
public void setTimeInMillis(long millis)
从给定的long值设置此Calendar的当前时间。- 参数
-
millis
- 距离纪元的UTC毫秒的新时间。 - 另请参见:
-
setTime(Date)
,getTimeInMillis()
-
get
public int get(int field)
返回给定日历字段的值。 在宽松模式下,所有日历字段都已标准化。 在非宽松模式下,所有日历字段都经过验证,如果任何日历字段具有超出范围的值,则此方法将引发异常。 规范化和验证由complete()
方法处理,该方法依赖于日历系统。- 参数
-
字段
- 给定的日历字段。 - 结果
- 给定日历字段的值。
- 异常
-
ArrayIndexOutOfBoundsException
- 如果指定的字段超出范围(field < 0 || field >= FIELD_COUNT
)。 - 另请参见:
-
set(int,int)
,complete()
-
internalGet
protected final int internalGet(int field)
返回给定日历字段的值。 该方法不涉及字段值的标准化或验证。- 参数
-
字段
- 给定的日历字段。 - 结果
- 给定日历字段的值。
- 另请参见:
-
get(int)
-
set
public void set(int field, int value)
将给定的日历字段设置为给定值。 无论宽大模式如何,此方法都不会解释该值。- 参数
-
字段
- 给定的日历字段。 -
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。 例如,0表示1月份。 -
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。 例如,0表示1月份。 -
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
- 用于设置YEAR
日历字段的值。 -
month
- 用于设置MONTH
日历字段的值。 月值基于0。 例如,0表示1月份。 -
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()
设置此Calendar
未定义的所有日历字段值和时间值(与Epoch的毫秒偏移量)。 这意味着isSet()
将为所有日历字段返回false
,日期和时间计算将字段视为从未设置过。Calendar
实现类可以使用其特定的默认字段值进行日期/时间计算。 例如,如果YEAR
字段值未定义,则GregorianCalendar
使用1970。- 另请参见:
-
clear(int)
-
clear
public final void clear(int field)
设置此Calendar
undefined的给定日历字段值和时间值(距离Epoch的毫秒偏移量)。 这意味着isSet(field)
将返回false
,并且日期和时间计算将该字段视为从未设置过。Calendar
实现类可以使用字段的特定默认值进行日期和时间计算。的
HOUR_OF_DAY
,HOUR
和AM_PM
字段独立地处理,并且the resolution rule for the time of day被应用。 清除其中一个字段不会重置此Calendar
的小时值。 使用set(Calendar.HOUR_OF_DAY, 0)
重置小时值。- 参数
-
字段
- 要清除的日历字段。 - 另请参见:
-
clear()
-
isSet
public final boolean isSet(int field)
确定给定的日历字段是否具有值集,包括由get
方法调用触发的内部字段计算设置的值的情况。- 参数
-
字段
- 要测试的日历字段 - 结果
-
true
如果给定的日历字段具有值集; 否则为false
。
-
getDisplayName
public String getDisplayName(int field, int style, Locale locale)
返回给定style
和locale
日历字段
值的字符串表示locale
。 如果没有适用的字符串表示,则返回null
。 如果字符串表示适用于给定日历字段
则此方法调用get(field)
以获取日历字段
值。例如,如果此
Calendar
是GregorianCalendar
且其日期是2005-01-01,那么MONTH
字段的字符串表示形式将是英语区域设置中的长样式中的“1月”或短样式中的“Jan”。 但是,DAY_OF_MONTH
字段没有可用的字符串表示形式,此方法将返回null
。默认实现支持其中的日历字段
DateFormatSymbols
在给定的名字locale
。- 参数
-
字段
- 返回字符串表示形式的日历字段 -
style
- 应用于字符串表示的样式; 之一SHORT_FORMAT
(SHORT
),SHORT_STANDALONE
,LONG_FORMAT
(LONG
),LONG_STANDALONE
,NARROW_FORMAT
,或NARROW_STANDALONE
。 -
locale
- 字符串表示的语言环境(由locale
指定的任何日历类型都将被忽略) - 结果
- 给定
字段
中给定style
字符串表示style
,如果没有适用的字符串表示style
,null
。 - 异常
-
IllegalArgumentException
- 如果字段
或style
无效,或者此Calendar
不宽松且任何日历字段具有无效值 -
NullPointerException
- 如果locale
为空 - 从以下版本开始:
- 1.6
-
getDisplayNames
public Map<String,Integer> getDisplayNames(int field, int style, Locale locale)
返回Map
其中包含给定style
和locale
日历字段
所有名称及其对应的字段值。 例如,如果此Calendar
是GregorianCalendar
,则返回的地图将包含“Jan”到JANUARY
,“Feb”到FEBRUARY
,依此类推,在英语语言环境中的short样式中。由于使用单个字符,缩小的名称可能不是唯一的,例如星期日和星期六的“S”。 在这种情况下,缩小的名称不包括在返回的
Map
。可以考虑其他日历字段的值以确定一组显示名称。 例如,如果此
Calendar
是阴阳历系统并且YEAR
字段给出的年份值具有闰月,则此方法将返回包含闰月名称的月份名称,并且月份名称将映射到特定于年份的月份名称。默认实现支持
DateFormatSymbols
中包含的显示名称。 例如,如果字段
是MONTH
并且style
是ALL_STYLES
,则此方法返回Map
其中包含由DateFormatSymbols.getShortMonths()
和DateFormatSymbols.getMonths()
返回的所有字符串。- 参数
-
字段
- 返回显示名称的日历字段 -
style
- 应用于字符串表示的样式; 之一SHORT_FORMAT
(SHORT
),SHORT_STANDALONE
,LONG_FORMAT
(LONG
),LONG_STANDALONE
,NARROW_FORMAT
,或NARROW_STANDALONE
-
locale
- 显示名称的语言环境 - 结果
- 一个
Map
包含在所有显示名称style
和locale
和它们的字段值,或null
如果没有显示名称为定义字段
- 异常
-
IllegalArgumentException
- 如果字段
或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"
("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
。 当且仅当参数是同一日历系统的Calendar
对象时,结果为true
,该对象表示与此对象相同的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
于when
表示的时间; 否则为false
。 - 另请参见:
-
compareTo(Calendar)
-
compareTo
public int compareTo(Calendar anotherCalendar)
比较两个Calendar
对象表示的时间值(从 Epoch开始的毫秒偏移)。- Specified by:
-
compareTo
in interfaceComparable<Calendar>
- 参数
-
anotherCalendar
- 待比较的Calendar
。 - 结果
- 值
0
如果由所述参数表示的时间等于由此表示的时间Calendar
; 如果此Calendar
的时间早于参数所代表的时间,则该值小于0
; 如果此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)
。- 参数
-
字段
- 日历字段。 -
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字段上滚动时,其他字段(如日期)可能会发生冲突,需要更改。 例如,在01/31/96日期滚动月份将导致02/29/96。 在小时或Calendar.HOUR_OF_DAY字段上滚动时,它将在0到23之间的范围内滚动小时值,该值从零开始。- 参数
-
字段
- 时间字段。 -
up
- 指示是否要汇总或滚动指定时间字段的值。 如果滚动则使用true,否则使用false。 - 另请参见:
-
add(int,int)
,set(int,int)
-
roll
public void roll(int field, int amount)
将指定的(已签名)金额添加到指定的日历字段,而不更改更大的字段。 负数表示向下滚动。注意:
Calendar
上的此默认实现仅重复调用以一个单位滚动的版本roll()
。 这可能并不总是做正确的事情。 例如,如果DAY_OF_MONTH
字段为31,则滚动到2月将其设置为28.此函数的GregorianCalendar
版本可以解决此问题。 其他子类也应提供此功能的覆盖,以做正确的事情。- 参数
-
字段
- 日历字段。 -
amount
- 要添加到日历字段
的签名金额。 - 从以下版本开始:
- 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月942”之类的日期将被视为等同于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
的这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)
- 参数
-
字段
- 日历字段。 - 结果
- 给定日历字段的最小值。
- 另请参见:
-
getMaximum(int)
,getGreatestMinimum(int)
,getLeastMaximum(int)
,getActualMinimum(int)
,getActualMaximum(int)
-
getMaximum
public abstract int getMaximum(int field)
- 参数
-
字段
- 日历字段。 - 结果
- 给定日历字段的最大值。
- 另请参见:
-
getMinimum(int)
,getGreatestMinimum(int)
,getLeastMaximum(int)
,getActualMinimum(int)
,getActualMaximum(int)
-
getGreatestMinimum
public abstract int getGreatestMinimum(int field)
- 参数
-
字段
- 日历字段。 - 结果
- 给定日历字段的最小最小值。
- 另请参见:
-
getMinimum(int)
,getMaximum(int)
,getLeastMaximum(int)
,getActualMinimum(int)
,getActualMaximum(int)
-
getLeastMaximum
public abstract int getLeastMaximum(int field)
返回此Calendar
实例的给定日历字段的最小最大值。 最低最大值定义为getActualMaximum(int)
为任何可能的时间值返回的最小值 。 最小值最小值取决于实例的日历系统特定参数。 例如,Calendar
对于格里高利历系统返回的28DAY_OF_MONTH
领域,由于28日是这个日历,二月在一个共同的一年中最短的月份的最后一天。- 参数
-
字段
- 日历字段。 - 结果
- 给定日历字段的最小最大值。
- 另请参见:
-
getMinimum(int)
,getMaximum(int)
,getGreatestMinimum(int)
,getActualMinimum(int)
,getActualMaximum(int)
-
getActualMinimum
public int getActualMinimum(int field)
给定此Calendar
的时间值,返回指定日历字段可能具有的Calendar
。此方法的默认实现使用迭代算法来确定日历字段的实际最小值。 如果可能,子类应该使用更有效的实现来覆盖它 - 在许多情况下,它们可以简单地返回
getMinimum()
。- 参数
-
字段
- 日历字段 - 结果
- 此
Calendar
的时间值的给定日历字段的Calendar
- 从以下版本开始:
- 1.2
- 另请参见:
-
getMinimum(int)
,getMaximum(int)
,getGreatestMinimum(int)
,getLeastMaximum(int)
,getActualMaximum(int)
-
getActualMaximum
public int getActualMaximum(int field)
给定此Calendar
的时间值,返回指定日历字段可能具有的Calendar
。 例如,MONTH
字段的实际最大值在某些年份为12,在希伯来日历系统中为其他年份的13。此方法的默认实现使用迭代算法来确定日历字段的实际最大值。 如果可能,子类应该使用更有效的实现来覆盖它。
- 参数
-
字段
- 日历字段 - 结果
- 此
Calendar
的时间值的给定日历字段的Calendar
- 从以下版本开始:
- 1.2
- 另请参见:
-
getMinimum(int)
,getMaximum(int)
,getGreatestMinimum(int)
,getLeastMaximum(int)
,getActualMinimum(int)
-
toString
public String toString()
返回此日历的字符串表示形式。 此方法仅用于调试目的,返回字符串的格式可能因实现而异。 返回的字符串可能为空,但可能不是null
。
-
-