public abstract class Calendar extends Object implements Serializable, Cloneable, Comparable<Calendar>
Calendar
类是一个抽象类,为一个特定的瞬间和一套
calendar fields
如
YEAR
,
MONTH
,
DAY_OF_MONTH
,
HOUR
之间的转换提供了方法,等,和操纵日历字段,例如获得下一周的日期。瞬间可以通过,从
Epoch偏移毫秒值表示,1970年1月1日00:00: 0 GMT(阳历)。
该类还提供了用于在包外实现一个具体的日历系统的额外字段和方法。这些字段和方法被定义为protected
。
像其他地方Calendar
敏感类,提供了类的方法,getInstance
,得到一个有用的对象,这种类型的。Calendar
的getInstance
方法返回的对象Calendar
日历领域已与当前的日期和时间初始化:
Calendar rightNow = Calendar.getInstance();
一个Calendar
对象可以产生所有日历字段值需要实施日期时间格式设置为一个特定的语言和日历样式(例如,日本公历,日本传统)。Calendar
定义的值的范围,通过一定的日历字段返回,以及它们的含义。例如,第一个月的日历系统都有价值MONTH == JANUARY
日历。其他的价值是由具体的子类来定义的,如ERA
。详情见个人领域的文档和子文档。
日历字段值可以通过调用set
方法。任何领域中设置的值将不会被解释Calendar
直到它需要计算其时间价值(从时代的毫秒)或值的日历字段。调用get
,getTimeInMillis
,getTime
,add
和roll
涉及计算。
Calendar
已经解释历法领域两种模式,宽容和不宽容。当一个Calendar
是宽松的模式,它接受比它产生更多的日历字段值的范围。当一个Calendar
重新返回到get()
日历字段值,所有的日历字段进行归一化处理。例如,一个宽容的GregorianCalendar
解释MONTH == JANUARY
,DAY_OF_MONTH == 32
2月1日。
当一个Calendar
是非宽松的模式,它抛出一个异常,如果有任何不一致的日历字段。例如,一个GregorianCalendar
总是产生DAY_OF_MONTH
值1和长度之间的月。不宽容的GregorianCalendar
抛出异常后,计算其时间或日历字段值是否超出范围的字段值已设置。
Calendar
定义了一个特定区域的七天一周使用两个参数:一个星期的第一天和第一周的最小时间(从1到7)。这些数字是从区域资源数据时,
Calendar
构造。也可以通过设置它们的值的方法来显式地指定它们。
当设置或获取WEEK_OF_MONTH
或WEEK_OF_YEAR
领域,Calendar
必须确定一个月或一年的第一周作为一个参考点。一个月或一年的第一周是最早的七天期间开始getFirstDayOfWeek()
和含有至少getMinimalDaysInFirstWeek()
日,月或年。星期数……,- 1,0在第一周之前;周编号2,3,…跟随它。请注意,标准编号由get()
可能不同。例如,一个特定的Calendar
子类可以指定周1周前一年的前一年n
周。
Calendar
将解决日历字段值来确定在以下日期和时间。
If there is any conflict in calendar field values, Calendar
gives priorities to calendar fields that have been set more recently.以下是日历字段的默认组合。最近的组合,所确定的最近设置的单场,将被使用。
For the time of day fields: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
,等。
注:存在某种奇异的时代解读某些可能的模糊性,这是通过以下方式解决:
日期和时间格式字符串不是一个日历定义的一部分,为那些必须由用户在运行时被修改或重写。使用DateFormat
格式化日期。
set()
,
add()
,和
roll()
。
set(f, value)
变化领域对value
f
日历。此外,它设置一个内部成员变量表示日历字段f
已经改变。虽然日历字段f
马上改变,在毫秒级的时间价值计算日历不到get()
,getTime()
,getTimeInMillis()
,add()
下一个电话,或roll()
了。因此,多次调用set()
不触发多个不必要的计算。由于采用了set()
改变历法领域,其他领域也可能改变日历,根据日历,日历字段值,以及日历系统。此外,get(f)
不一定会有回报value
由调用的方法后,set
日历字段已被重新计算。具体情况由具体的日历类决定。
例如:考虑一个GregorianCalendar
原定于1999年8月31日。打电话set(Calendar.MONTH, Calendar.SEPTEMBER)
设置日期1999年9月31日。这是一个临时的内部表示,决心1999年10月1日如果getTime()
is叫。然而,一个叫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)
集日历2000年9月30日。添加规则1集MONTH
场到九月13个月,由于加入了明年九月。自九月31 DAY_OF_MONTH
不能在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()
,取决于是否应该影响更大的领域,用户界面可以像大多数用户将直观的期望。
System.currentTimeMillis()
,
Date
,
GregorianCalendar
,
TimeZone
,
DateFormat
,
Serialized Form
Modifier and Type | Class and Description |
---|---|
static class |
Calendar.Builder
Calendar.Builder 用于创建各种时间参数的
Calendar 。
|
Modifier and Type | Field and Description |
---|---|
static int |
ALL_STYLES
风格
getDisplayNames 表示所有款式名称说明符,如“一月”和“简”。
|
static int |
AM
指示在中午之前从午夜的日期
AM_PM 字段值。
|
static int |
AM_PM
对于
get 和
set 指示
HOUR 是在中午前或后的场数。
|
static int |
APRIL
价值的
MONTH 指示一年中第四个月在格里高利和朱利安的日历。
|
protected boolean |
areFieldsSet
如果
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 指示当前的年内日数场数。
|
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
一个样式为
getDisplayName 和
getDisplayNames 指示一个很长的名字用于格式。
|
static int |
LONG_STANDALONE
一个样式为
getDisplayName 和
getDisplayNames 指示一个很长的名字单独使用,如一个月的日历标题名称。
|
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
一个名为
getDisplayName 和
getDisplayNames 指示一个狭窄的名称用于格式。
|
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
一个名为
getDisplayName 和
getDisplayNames 指示短名称用于格式。
|
static int |
SHORT_STANDALONE
一个样式为
getDisplayName 和
getDisplayNames 指示短名称独立使用,如一个月简称日历标题。
|
static int |
SUNDAY
星期日
DAY_OF_WEEK 指示字段值。
|
static int |
THURSDAY
星期四
DAY_OF_WEEK 指示字段值。
|
protected long |
time
目前设置该日历时间,表示在毫秒后1970年1月1日,0:00:00 GMT。
|
static int |
TUESDAY
星期二
DAY_OF_WEEK 指示字段值。
|
static int |
UNDECIMBER
表示一年的第十三个月的
MONTH 字段值。
|
static int |
WEDNESDAY
星期三
DAY_OF_WEEK 指示字段值。
|
static int |
WEEK_OF_MONTH
对于
get 和
set 指示当前的一个月内的周数场数。
|
static int |
WEEK_OF_YEAR
对于
get 和
set 指示当前的年内周数场数。
|
static int |
YEAR
对于
get 和
set 指示年场数。
|
static int |
ZONE_OFFSET
场数
get 和
set 指示从格林威治标准时间以毫秒为单位的原始偏移。
|
Modifier | Constructor and Description |
---|---|
protected |
Calendar()
构建了一个默认的时区和默认的
FORMAT 现场日历。
|
protected |
Calendar(TimeZone zone, Locale aLocale)
用指定的时区和区域设置构造一个日历。
|
Modifier and Type | Method and Description |
---|---|
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)
比较时间(毫秒偏移值从
Epoch)由两
Calendar 物体的代表。
|
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 时间价值。
|
int |
getActualMinimum(int field)
返回指定日历字段可以有最小值,给出了
Calendar 时间价值。
|
static Set<String> |
getAvailableCalendarTypes()
返回包含所有日历类型在运行时环境
Calendar 支持的一个不可修改的
Set 。
|
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 的日历
field 在给定的
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 实例返回给定日历字段的最大值。
|
int |
getMinimalDaysInFirstWeek()
获取一年的第一周所需的最小天数;如果第一周被定义为包含一年的第一个月的第一天的第一天,该方法返回1。
|
abstract int |
getMinimum(int field)
这
Calendar 实例返回给定日历字段的最小值。
|
Date |
getTime()
|
long |
getTimeInMillis()
返回此日历的时间值以毫秒为单位。
|
TimeZone |
getTimeZone()
获取时区。
|
int |
getWeeksInWeekYear()
返回的
Calendar 代表周年的周数。
|
int |
getWeekYear()
返回的
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()
返回此日历的字符串表示形式。
|
public static final int ERA
get
和
set
指示的时代,例如,在朱利安的日历AD或BC。这是一个日历特定值;见子类文档。
public static final int YEAR
get
和
set
指示年场数。这是一个日历特定值;见子类文档。
public static final int MONTH
get
和
set
指示的月数。这是一个日历特定值。在格里高利和朱利安的日历,新年的第一个月
JANUARY
这是0;最后取决于一年中的月数。
public static final int WEEK_OF_YEAR
get
和
set
指示当前的年内周数场数。这一年的第一周,由
getFirstDayOfWeek()
和
getMinimalDaysInFirstWeek()
定义,价值1。子类定义
WEEK_OF_YEAR
为一年的第一周的前几天的价值。
public static final int WEEK_OF_MONTH
get
和
set
指示当前的一个月内的周数场数。这个月的第一周,由
getFirstDayOfWeek()
和
getMinimalDaysInFirstWeek()
定义,价值1。子类定义
WEEK_OF_MONTH
每月的第一周的前几天的价值。
public static final int DATE
get
和
set
显示该月的一天,场数。这是一个同义词
DAY_OF_MONTH
。月的第一天有价值1。
public static final int DAY_OF_MONTH
get
和
set
显示该月的一天,场数。这是一个同义词
DATE
。月的第一天有价值1。
DATE
,
Constant Field Values
public static final int DAY_OF_YEAR
get
和
set
指示当前的年内日数场数。一年的第一天有价值1。
public static final int DAY_OF_WEEK
get
和
set
显示星期日期字段数。这个字段的值
SUNDAY
,
MONDAY
,
TUESDAY
,
WEDNESDAY
,
THURSDAY
,
FRIDAY
,和
SATURDAY
。
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
结束。
public static final int AM_PM
get
和
set
指示
HOUR
是在中午前或后的场数。例如,在10:04:下午15.250点
AM_PM
是
PM
。
AM
,
PM
,
HOUR
,
Constant Field Values
public static final int HOUR
get
和
set
表示上午或下午的时间。
HOUR
用于12小时时钟(0 - 11)。中午和午夜的代表0,而不是12。例如,在10:04:下午15.250点
HOUR
10。
AM_PM
,
HOUR_OF_DAY
,
Constant Field Values
public static final int HOUR_OF_DAY
get
和
set
指示小时的一天场数。
HOUR_OF_DAY
用于24小时。例如,在10:04:下午15.250点
HOUR_OF_DAY
22。
HOUR
,
Constant Field Values
public static final int MINUTE
get
和
set
指示在小时分钟的场数。例如,在10:04:下午15.250点
MINUTE
4。
public static final int SECOND
get
和
set
指示第二分钟内场数。例如,在10:04:下午15.250点
SECOND
15。
public static final int MILLISECOND
get
和
set
指示在第二毫秒字段数目。例如,在10:04:下午15.250点
MILLISECOND
250。
public static final int ZONE_OFFSET
get
和
set
指示从格林威治标准时间以毫秒为单位的原始偏移场数。
这场反映了这Calendar
时区的正确时间偏移值,如果TimeZone
实现的子类支持历史GMT偏移的变化。
public static final int DST_OFFSET
get
和
set
表示夏令时偏移毫秒字段数目。
这场正确反映日光节约抵消这Calendar
时区值如果TimeZone
实现的子类支持历史日光节约时间安排的变化。
public static final int FIELD_COUNT
get
和
set
认可数量。场数范围从
0..FIELD_COUNT-1
。
public static final int SUNDAY
DAY_OF_WEEK
指示字段值。
public static final int MONDAY
DAY_OF_WEEK
指示字段值。
public static final int TUESDAY
DAY_OF_WEEK
指示字段值。
public static final int WEDNESDAY
DAY_OF_WEEK
指示字段值。
public static final int THURSDAY
DAY_OF_WEEK
指示字段值。
public static final int FRIDAY
DAY_OF_WEEK
指示字段值。
public static final int SATURDAY
DAY_OF_WEEK
指示值。
public static final int JANUARY
MONTH
场表示一年的第一个月在格里高利和朱利安的日历。
public static final int FEBRUARY
MONTH
指示一年中的第二个月在公历日历和朱利安。
public static final int MARCH
MONTH
指示一年中第三个月在格里高利和朱利安的日历。
public static final int APRIL
MONTH
指示一年中第四个月在格里高利和朱利安的日历。
public static final int MAY
MONTH
指示一年中第五个月在格里高利和朱利安的日历。
public static final int JUNE
MONTH
指示一年中第六个月在格里高利和朱利安的日历。
public static final int JULY
MONTH
指示一年中第七个月在格里高利和朱利安的日历。
public static final int AUGUST
MONTH
指示一年中第八个月在格里高利和朱利安的日历。
public static final int SEPTEMBER
MONTH
指示一年中第九个月在格里高利和朱利安的日历。
public static final int OCTOBER
MONTH
指示一年中第十个月在格里高利和朱利安的日历。
public static final int NOVEMBER
MONTH
指示一年中第十一个月在格里高利和朱利安的日历。
public static final int DECEMBER
MONTH
指示一年中第十二个月在格里高利和朱利安的日历。
public static final int UNDECIMBER
MONTH
字段值。虽然
GregorianCalendar
不使用此值,阴历做。
public static final int AM
AM_PM
字段值。
public static final int PM
AM_PM
字段值。
public static final int ALL_STYLES
getDisplayNames
表示所有款式名称说明符,如“一月”和“简”。
SHORT_FORMAT
,
LONG_FORMAT
,
SHORT_STANDALONE
,
LONG_STANDALONE
,
SHORT
,
LONG
,
Constant Field Values
public static final int SHORT
SHORT_STANDALONE
,
LONG
,
Constant Field Values
public static final int LONG
LONG_STANDALONE
,
SHORT
,
Constant Field Values
public static final int NARROW_FORMAT
getDisplayName
和
getDisplayNames
指示一个狭窄的名称用于格式。窄的名称通常是单一的字符串,如“M”为星期一。
NARROW_STANDALONE
,
SHORT_FORMAT
,
LONG_FORMAT
,
Constant Field Values
public static final int NARROW_STANDALONE
getDisplayName
和
getDisplayNames
指示窄名独立风格。窄的名称通常是单一的字符串,如“M”为星期一。
NARROW_FORMAT
,
SHORT_STANDALONE
,
LONG_STANDALONE
,
Constant Field Values
public static final int SHORT_FORMAT
getDisplayName
和
getDisplayNames
指示短名称用于格式。
SHORT_STANDALONE
,
LONG_FORMAT
,
LONG_STANDALONE
,
Constant Field Values
public static final int LONG_FORMAT
getDisplayName
和
getDisplayNames
指示一个很长的名字用于格式。
LONG_STANDALONE
,
SHORT_FORMAT
,
SHORT_STANDALONE
,
Constant Field Values
public static final int SHORT_STANDALONE
getDisplayName
和
getDisplayNames
指示短名称独立使用,如一个月简称日历标题。
SHORT_FORMAT
,
LONG_FORMAT
,
LONG_STANDALONE
,
Constant Field Values
public static final int LONG_STANDALONE
getDisplayName
和
getDisplayNames
指示一个很长的名字单独使用,如一个月的日历标题名称。
LONG_FORMAT
,
SHORT_FORMAT
,
SHORT_STANDALONE
,
Constant Field Values
protected int[] fields
FIELD_COUNT
整数数组索引值,通过
DST_OFFSET
ERA
。
protected boolean[] isSet
FIELD_COUNT
布尔数组,索引值
ERA
通过
DST_OFFSET
。
protected long time
isTimeSet
protected boolean isTimeSet
time
值是有效的。时间的变化对
field[]
项目作无效。
time
protected boolean areFieldsSet
fields[]
是与当前设置的时间同步。如果为false,则得到一个字段的值,下次尝试将力从
time
当前值重新计算所有领域。
protected Calendar()
FORMAT
现场日历。
TimeZone.getDefault()
public static Calendar getInstance()
Calendar
基于默认
FORMAT
现场在默认时区的当前时间。
public static Calendar getInstance(TimeZone zone)
Calendar
基于默认
FORMAT
现场在特定时区的当前时间。
zone
-时区使用
public static Calendar getInstance(Locale aLocale)
Calendar
基于给定的区域设置在默认时区的当前时间。
aLocale
-本周数据区域
public static Calendar getInstance(TimeZone zone, Locale aLocale)
Calendar
基于给定的区域在特定的时区的当前时间。
zone
-时区使用
aLocale
-本周数据区域
public static Locale[] getAvailableLocales()
Calendar
实例可用数组。
protected abstract void computeTime()
complete()
,
computeFields()
protected abstract void computeFields()
computeTime()
public final Date getTime()
Date
代表时间价值。
setTime(Date)
,
getTimeInMillis()
public final void setTime(Date date)
Date
。
注:与Date(Long.MAX_VALUE)
或Date(Long.MIN_VALUE)
调用setTime()
可能产生错误的字段值从get()
。
date
-给定的日期。
getTime()
,
setTimeInMillis(long)
public long getTimeInMillis()
getTime()
,
setTimeInMillis(long)
public void setTimeInMillis(long millis)
millis
从UTC时间的毫秒的新时代。
setTime(Date)
,
getTimeInMillis()
public int get(int field)
complete()
方法处理,其过程的日历系统依赖性。
field
-给定的日历字段。
ArrayIndexOutOfBoundsException
-如果指定字段的范围(
field < 0 || field >= FIELD_COUNT
)。
set(int,int)
,
complete()
protected final int internalGet(int field)
field
-给定的日历字段。
get(int)
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)
public final void set(int year, int month, int date)
year
-用于设置
YEAR
日历字段的值。
month
-用于设置
MONTH
日历字段的值。月值是0。例如,一月的0。
date
-用于设置
DAY_OF_MONTH
日历字段的值。
set(int,int)
,
set(int,int,int,int,int)
,
set(int,int,int,int,int,int)
public final void set(int year, int month, int date, int hourOfDay, int minute)
year
-用于设置
YEAR
日历字段的值。
month
-用于设置
MONTH
日历字段的值。月值是0。例如,一月的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)
public final void set(int year, int month, int date, int hourOfDay, int minute, int second)
year
-用于设置
YEAR
日历字段的值。
month
-用于设置
MONTH
日历字段的值。月值是0。例如,一月的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)
public final void clear()
Calendar
定义。这意味着,
isSet()
将返回
false
所有日历字段,以及日期和时间计算处理领域好像从来没有被设置。一个
Calendar
实现类可以使用其特定的默认字段值为日期/时间计算。例如,
GregorianCalendar
使用1970如果
YEAR
字段的值是未定义的。
clear(int)
public final void clear(int field)
Calendar
定义。这意味着,
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)
重置小时值。
field
-日历字段将被清除。
clear()
public final boolean isSet(int field)
get
。
field
-日历字段测试
true
如果给定日历字段值设置;
false
否则。
public String getDisplayName(int field, int style, Locale locale)
style
和
locale
日历的
field
值的字符串表示形式。如果没有字符串表示形式是适用的,
null
返回。此方法调用
get(field)
如果字符串表示形式适用于给定的日历
field
得到日历
field
例如,如果这是一个GregorianCalendar
Calendar
及其日期2005-01-01,然后对MONTH
字段的字符串表示形式将“一月”在长期的风格在英语语言环境或“简”的风格。然而,没有字符串表示形式可为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
是空的
public Map<String,Integer> getDisplayNames(int field, int style, Locale locale)
Map
的日历
field
在给定的
style
和
locale
及其相应的字段值。例如,如果这是一个
GregorianCalendar
Calendar
,返回的Map将包含“简”
JANUARY
,“月”
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
是空的
protected void complete()
public static Set<String> getAvailableCalendarTypes()
Calendar
支持的一个不可修改的
Set
。可用的日历类型可用于
Unicode locale extensions,
Set
返回包含至少
"gregory"
。日历类型不包括别名,如
"gregorian"
为
"gregory"
。
Set
getCalendarType()
,
Calendar.Builder.setCalendarType(String)
,
Locale.getUnicodeLocaleType(String)
public String getCalendarType()
Calendar
日历类型。日历类型以Unicode的现场数据定义的标记语言(LDML)规范。
此方法的默认实现返回该Calendar
实例的类的名字。任何子类实现LDML定义日历系统应重写此方法以返回相应的日历类型。
Calendar
实例的类的名字
Locale.Builder.setLocale(Locale)
,
Locale.Builder.setUnicodeLocaleKeyword(String, String)
public boolean equals(Object obj)
Calendar
到指定的
Object
。其结果是
true
当且仅当参数是一个表示同一时间值相同的日历系统
Calendar
对象(毫秒偏离
Epoch)相同的
Calendar
参数下这个对象。
的Calendar
参数由isLenient
,getFirstDayOfWeek
所代表的价值观,getMinimalDaysInFirstWeek
和getTimeZone
方法。如果有那两Calendar
s参数之间的任何差异,此方法返回false
。
使用compareTo
法比较,只有时间值。
equals
方法重写,继承类
Object
obj
-比较对象。
true
该对象是否等于
obj
;
false
否则。
Object.hashCode()
,
HashMap
public int hashCode()
hashCode
方法重写,继承类
Object
Object.equals(java.lang.Object)
,
System.identityHashCode(java.lang.Object)
public boolean before(Object when)
Calendar
代表一个时间由指定的
Object
表示的时间。这种方法是等价的:
compareTo(when) < 0
当且仅当
when
是
Calendar
实例。否则,该方法返回
false
。
when
-
Object
进行比较
true
如果这
Calendar
时间由
when
之前的时间;
false
否则。
compareTo(Calendar)
public boolean after(Object when)
Calendar
代表由指定的
Object
表示时间过了一段时间。这种方法是等价的:
compareTo(when) > 0
当且仅当
when
是
Calendar
实例。否则,该方法返回
false
。
when
-
Object
进行比较
true
如果这
Calendar
时间由
when
时间后;
false
否则。
compareTo(Calendar)
public int compareTo(Calendar anotherCalendar)
Calendar
物体的代表。
compareTo
接口
Comparable<Calendar>
anotherCalendar
-
Calendar
进行比较。
0
如果参数表示的时间等于该
Calendar
代表时间;值小于
0
如果这
Calendar
时间由参数表示的时间;和一个值大于
0
如果这
Calendar
时间由参数表示的时间后。
NullPointerException
-如果指定
Calendar
是
null
。
IllegalArgumentException
-如果指定
Calendar
对象时间价值不能由于任何无效的日历值。
public abstract void add(int field, int amount)
add(Calendar.DAY_OF_MONTH, -5)
。
field
-日历字段。
amount
-日期或时间被添加到字段。
roll(int,int)
,
set(int,int)
public abstract void roll(int field, boolean up)
卷(calendar.date,真的)。当滚动在一年或calendar.year领域,它将在1年的价值和价值之间的范围称getMaximum(Calendar.YEAR)
返回。上滚动时,月或calendar.month领域,其他领域如日期可能冲突,需要改变。例如,滚动月的日期01 / 31 / 96将导致02 / 29 / 96。当滚动在一天或calendar.hour_of_day领域时,它将在0和23之间的范围内的小时值的卷,这是零基础。
field
-时间域。
up
-表示如果指定时间字段的值是可以卷起或滚下。使用真实,如果卷起,否则虚假。
add(int,int)
,
set(int,int)
public void roll(int field, int amount)
注:此默认实现Calendar
只是反复调用,一个单位roll()
卷版。这可能并不总是做正确的事。例如,如果DAY_OF_MONTH
字段为31,滚动通过二月会把它设置为28。这个函数的GregorianCalendar
版本需要关心这个问题。其他子类还应提供重写这个函数,做正确的事。
field
-日历字段。
amount
的签约金额添加到日历
field
。
roll(int,boolean)
,
add(int,int)
,
set(int,int)
public void setTimeZone(TimeZone value)
value
-给定的时间区。
public TimeZone getTimeZone()
public void setLenient(boolean lenient)
lenient
-
true
如果宽松的模式被开启;
false
如果是关闭的。
isLenient()
,
DateFormat.setLenient(boolean)
public boolean isLenient()
true
如果本日历的解释模式是宽松;
false
否则。
setLenient(boolean)
public void setFirstDayOfWeek(int value)
SUNDAY
,
MONDAY
法国。
value
-给定的第一天。
getFirstDayOfWeek()
,
getMinimalDaysInFirstWeek()
public int getFirstDayOfWeek()
SUNDAY
,
MONDAY
法国。
setFirstDayOfWeek(int)
,
getMinimalDaysInFirstWeek()
public void setMinimalDaysInFirstWeek(int value)
value
-在今年第一周所需最小的天。
getMinimalDaysInFirstWeek()
public int getMinimalDaysInFirstWeek()
setMinimalDaysInFirstWeek(int)
public boolean isWeekDateSupported()
Calendar
支持周日期。
此方法的默认实现将返回false
。
true
Calendar
支持周期;
false
否则。
getWeekYear()
,
setWeekDate(int,int,int)
,
getWeeksInWeekYear()
public int getWeekYear()
Calendar
代表周年。这一周与周周期是同步的。本周的
first day of the first week是新年的第一天。
此方法的默认实现将抛出一个UnsupportedOperationException
。
Calendar
周年
UnsupportedOperationException
若周纪年不在这
Calendar
支持。
isWeekDateSupported()
,
getFirstDayOfWeek()
,
getMinimalDaysInFirstWeek()
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
支持。
isWeekDateSupported()
,
getFirstDayOfWeek()
,
getMinimalDaysInFirstWeek()
public int getWeeksInWeekYear()
Calendar
代表周年的周数。
此方法的默认实现将抛出一个UnsupportedOperationException
。
UnsupportedOperationException
若周纪年不在这
Calendar
支持。
WEEK_OF_YEAR
,
isWeekDateSupported()
,
getWeekYear()
,
getActualMaximum(int)
public abstract int getMinimum(int field)
Calendar
实例返回给定日历字段的最小值。最小值被定义为最小的方法返回的值
get
任何可能的时间价值。最小值取决于实例的日历系统特定参数。
field
-日历字段。
getMaximum(int)
,
getGreatestMinimum(int)
,
getLeastMaximum(int)
,
getActualMinimum(int)
,
getActualMaximum(int)
public abstract int getMaximum(int field)
Calendar
实例返回给定日历字段的最大值。最大值是指最大值
get
方法返回的任何可能的时间价值。最大值取决于实例的日历系统特定参数。
field
-日历字段。
getMinimum(int)
,
getGreatestMinimum(int)
,
getLeastMaximum(int)
,
getActualMinimum(int)
,
getActualMaximum(int)
public abstract int getGreatestMinimum(int field)
Calendar
实例给定日历领域最高最低值。最高最低值定义为最大值
getActualMinimum(int)
返回的任何可能的时间价值。最大最小值取决于实例的日历系统特定参数。
field
-日历字段。
getMinimum(int)
,
getMaximum(int)
,
getLeastMaximum(int)
,
getActualMinimum(int)
,
getActualMaximum(int)
public abstract int getLeastMaximum(int field)
Calendar
实例返回给定日历字段的最大值最低。最低的最大值被定义为最小的值返回
getActualMaximum(int)
任何可能的时间价值。最小最大值取决于实例的日历系统特定参数。例如,一个公历体系
Calendar
返回28的
DAY_OF_MONTH
领域,因为第二十八是最短的这个月的最后一天,二月在平年。
field
-日历字段。
getMinimum(int)
,
getMaximum(int)
,
getGreatestMinimum(int)
,
getActualMinimum(int)
,
getActualMaximum(int)
public int getActualMinimum(int field)
Calendar
时间价值。
该方法的默认实现使用一个迭代算法来确定日历字段的实际最小值。子类应该,如果可能的话,重写这个在许多情况下,更有效的实现,他们可以简单地返回getMinimum()
。
field
-日历字段
Calendar
时间值的给定日历字段的最小
getMinimum(int)
,
getMaximum(int)
,
getGreatestMinimum(int)
,
getLeastMaximum(int)
,
getActualMaximum(int)
public int getActualMaximum(int field)
Calendar
时间价值。例如,在
MONTH
领域实际的最大值是12年,13年在希伯来日历系统。
该方法的默认实现使用一个迭代算法来确定日历字段的实际最大值。子类应该,如果可能的话,重写一个更有效的实现。
field
-日历字段
Calendar
时间值给定日历字段的最大值
getMinimum(int)
,
getMaximum(int)
,
getGreatestMinimum(int)
,
getLeastMaximum(int)
,
getActualMinimum(int)
public String toString()
null
。
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.