Android学习笔记十二:Calendar(示例、出错代码、参数)
2016-05-16 15:09
447 查看
java.util
类 Calendar
java.lang.Object java.util.Calendar
所有已实现的接口:Serializable, Cloneable, Comparable<Calendar>
直接已知子类:GregorianCalendar
public abstract class CalendarextendsObjectimplements Serializable, Cloneable, Comparable<Calendar>
Calendar类是一个抽象类,它为特定瞬间与一组诸如
YEAR、
MONTH、
DAY_OF_MONTH、
HOUR等 日历字段之间的转换提供了一些方法,并为操作日历字段(例如获得下星期的日期)提供了一些方法。瞬间可用毫秒值来表示,它是距历元(即格林威治标准时间 1970 年 1 月 1 日的 00:00:00.000,格里高利历)的偏移量。
该类还为实现包范围外的具体日历系统提供了其他字段和方法。这些字段和方法被定义为
protected。
与其他语言环境敏感类一样,
Calendar提供了一个类方法
getInstance,以获得此类型的一个通用的对象。
Calendar的
getInstance方法返回一个
Calendar对象,其日历字段已由当前日期和时间初始化:
Calendar rightNow = Calendar.getInstance();
Calendar对象能够生成为特定语言和日历风格实现日期-时间格式化所需的所有日历字段值,例如,日语-格里高里历,日语-传统日历。
Calendar定义了某些日历字段返回值的范围,以及这些值的含义。例如,对于所有日历,日历系统第一个月的值是
MONTH == JANUARY。其他值是由具体子类(例如
ERA)定义的。有关此内容的细节,请参阅每个字段的文档和子类文档。
获得并设置日历字段值
可以通过调用set方法来设置日历字段值。在需要计算时间值(距历元所经过的毫秒)或日历字段值之前,不会解释
Calendar中的所有字段值设置。调用
get、
getTimeInMillis、
getTime、
add和
roll涉及此类计算。
宽松性
Calendar有两种解释日历字段的模式,即 lenient 和 non-lenient。当
Calendar处于 lenient 模式时,它可接受比它所生成的日历字段范围更大范围内的值。当
Calendar重新计算日历字段值,以便由
get()返回这些值时,所有日历字段都被标准化。例如,lenient 模式下的
GregorianCalendar将
MONTH == JANUARY、
DAY_OF_MONTH== 32解释为 February 1。
当
Calendar处于 non-lenient 模式时,如果其日历字段中存在任何不一致性,它都会抛出一个异常。例如,
GregorianCalendar总是在 1 与月份的长度之间生成
DAY_OF_MONTH值。如果已经设置了任何超出范围的字段值,那么在计算时间或日历字段值时,处于 non-lenient 模式下的
GregorianCalendar会抛出一个异常。
第一个星期
Calendar使用两个参数定义了特定于语言环境的 7 天制星期:星期的第一天和第一个星期中的最小一天(从 1 到 7)。这些数字取自构造
Calendar时的语言环境资源数据。还可以通过为其设置值的方法来显式地指定它们。
在设置或获得
WEEK_OF_MONTH或
WEEK_OF_YEAR字段时,
Calendar必须确定一个月或一年的第一个星期,以此作为参考点。一个月或一年的第一个星期被确定为开始于
getFirstDayOfWeek()的最早七天,它最少包含那一个月或一年的
getMinimalDaysInFirstWeek()天数。第一个星期之前的各星期编号为 ...、-1、0;之后的星期编号为
2、3、...。注意,
get()返回的标准化编号方式可能有所不同。例如,特定
Calendar子类可能将某一年第 1 个星期之前的那个星期指定为前一年的第
n个星期。
日历字段解析
在计算日历字段中的日期和时间时,可能没有足够的信息用于计算(例如只有年和月,但没有日),或者可能有不一致的信息( 例如 "Tuesday, July 15, 1996"(格林威治时间)——实际上,1996 年 7 月 15 日是星期一 )。Calendar将解析日历字段值,以便用以下方式确定日期和时间。
如果日历字段值中存在任何冲突,则
Calendar将为最近设置的日历字段提供优先权。以下是日历字段的默认组合。将使用由最近设置的单个字段所确定的最近组合。
对于日期字段:
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。
尽管从历史上看不够精确,但午夜也属于 "am",,中午属于 "pm",所以在同一天,12:00 am ( 午夜 ) < 12:01 am,12:00 pm ( 中午 ) < 12:01 pm。
日期或时间格式字符串不是日历定义的一部分,因为在运行时,用户必须能够修改或重写它们。可以使用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)将该日期设置为 1999 年 9 月 31 日。如果随后调用
getTime(),那么这是解析 1999 年 10 月 1 日的一个暂时内部表示。但是,在调用
getTime()之前调用
set(Calendar.DAY_OF_MONTH, 30)会将该日期设置为 1999 年 9 月 30 日,因为在调用
set()之后没有发生重新计算。
add(f, delta)将
delta添加到
f字段中。这等同于调用
set(f, get(f) + delta),但要带以下两个调整:
Add 规则 1。调用后
f字段的值减去调用前
f字段的值等于
delta,以字段
f中发生的任何溢出为模。溢出发生在字段值超出其范围时,结果,下一个更大的字段会递增或递减,并将字段值调整回其范围内。
Add 规则 2。如果期望某一个更小的字段是不变的,但让它等于以前的值是不可能的,因为在字段
f发生更改之后,或者在出现其他约束之后,比如时区偏移量发生更改,它的最大值和最小值也在发生更改,然后它的值被调整为尽量接近于所期望的值。更小的字段表示一个更小的时间单元。
HOUR是一个比
DAY_OF_MONTH小的字段。对于不期望是不变字段的更小字段,无需进行任何调整。日历系统会确定期望不变的那些字段。
此外,与
set()不同,
add()强迫日历系统立即重新计算日历的毫秒数和所有字段。
示例:假定
GregorianCalendar最初被设置为 1999 年 8 月 31 日。调用
add(Calendar.MONTH, 13)将日历设置为 2000 年 9 月 30 日。Add 规则 1 将
MONTH字段设置为 September,因为向 August
添加 13 个月得出的就是下一年的 September。因为在
GregorianCalendar中,
DAY_OF_MONTH不可能是 9 月 31 日,所以 add 规则 2 将
DAY_OF_MONTH设置为 30,即最可能的值。尽管它是一个更小的字段,但不能根据规则 2
调整
DAY_OF_WEEK,因为在
GregorianCalendar中的月份发生变化时,该值也需要发生变化。
roll(f, delta)将
delta添加到
f字段中,但不更改更大的字段。这等同于调用
add(f, delta),但要带以下调整:
Roll 规则。在完成调用后,更大的字段无变化。更大的字段表示一个更大的时间单元。
DAY_OF_MONTH是一个比
HOUR大的字段。
示例:请参阅 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(),根据是否会影响更大的字段,用户界面可以像大多数用户所期望的那样运行。
从以下版本开始:JDK1.1另请参见:System.currentTimeMillis(),Date, GregorianCalendar,TimeZone,DateFormat, 序列化表格
字段摘要 | |
---|---|
staticint | ALL_STYLES 指示所有风格名称的 getDisplayNames 的风格说明符,比如 "January" 和 "Jan"。 |
staticint | AM 指示从午夜到中午之前这段时间的 AM_PM 字段值。 |
staticint | AM_PM get和 set的字段数字,指示 HOUR是在中午之前还是在中午之后。 |
staticint | APRIL 指示在格里高利历和罗马儒略历中一年中第四个月的 MONTH 字段值。 |
protectedboolean | areFieldsSet 如果 fields[]与当前的设置时间同步,则返回 true。 |
staticint | AUGUST 指示在格里高利历和罗马儒略历中一年中第八个月的 MONTH 字段值。 |
staticint | DATE get和 set的字段数字,指示一个月中的某天。 |
staticint | DAY_OF_MONTH get和 set的字段数字,指示一个月中的某天。 |
staticint | DAY_OF_WEEK get和 set的字段数字,指示一个星期中的某天。 |
staticint | DAY_OF_WEEK_IN_MONTH get和 set的字段数字,指示当前月中的第几个星期。 |
staticint | DAY_OF_YEAR get和 set的字段数字,指示当前年中的天数。 |
staticint | DECEMBER 指示在格里高利历和罗马儒略历中一年中第十二个月的 MONTH 字段值。 |
staticint | DST_OFFSET get和 set的字段数字,以毫秒为单位指示夏令时的偏移量。 |
staticint | ERA 指示年代的 get和 set的字段数字,比如罗马儒略历中的 AD 或 BC。 |
staticint | FEBRUARY 指示在格里高利历和罗马儒略历中一年中第二个月的 MONTH 字段值。 |
staticint | FIELD_COUNT get和 set可识别的不同字段的数量。 |
protectedint[] | fields 此日历当前设置时间的日历字段值。 |
staticint | FRIDAY 指示 Friday 的 DAY_OF_WEEK 字段值。 |
staticint | HOUR get和 set的字段数字,指示上午或下午的小时。 |
staticint | HOUR_OF_DAY get和 set的字段数字,指示一天中的小时。 |
protectedboolean[] | isSet 通知是否设置了该日历某一指定日历字段的标志。 |
protectedboolean | isTimeSet 如果 time值是一个有效值,则返回 true。 |
staticint | JANUARY 指示在格里高利历和罗马儒略历中一年中第一个月的 MONTH 字段值。 |
staticint | JULY 指示在格里高利历和罗马儒略历中一年中第七个月的 MONTH 字段值。 |
staticint | JUNE 指示在格里高利历和罗马儒略历中一年中第六个月的 MONTH 字段值。 |
staticint | LONG 指示长名称的 getDisplayName 和 getDisplayNames 的风格说明符,比如 "January"。 |
staticint | MARCH 指示在格里高利历和罗马儒略历中一年中第三个月的 MONTH 字段值。 |
staticint | MAY 指示在格里高利历和罗马儒略历中一年中第五个月的 MONTH 字段值。 |
staticint | MILLISECOND get和 set的字段数字,指示一秒中的毫秒。 |
staticint | MINUTE get和 set的字段数字,指示一小时中的分钟。 |
staticint | MONDAY 指示 Monday 的 DAY_OF_WEEK 字段值。 |
staticint | MONTH 指示月份的 get和 set的字段数字。 |
staticint | NOVEMBER 指示在格里高利历和罗马儒略历中一年中第十一个月的 MONTH 字段值。 |
staticint | OCTOBER 指示在格里高利历和罗马儒略历中一年中第十个月的 MONTH 字段值。 |
staticint | PM 指示从中午到午夜之前这段时间的 AM_PM 字段值。 |
staticint | SATURDAY 指示 Saturday 的 DAY_OF_WEEK 字段值。 |
staticint | SECOND get和 set的字段数字,指示一分钟中的秒。 |
staticint | SEPTEMBER 指示在格里高利历和罗马儒略历中一年中第九个月的 MONTH 字段值。 |
staticint | SHORT 指示短名称的 getDisplayName 和 getDisplayNames 的风格说明符,比如 "Jan"。 |
staticint | SUNDAY 指示 Sunday 的 DAY_OF_WEEK 字段值。 |
staticint | THURSDAY 指示 Thursday 的 DAY_OF_WEEK 字段值。 |
protected long | time 日历的当前设置时间,以毫秒为单位,表示自格林威治标准时间 1970 年 1月 1 日 0:00:00 后经过的时间。 |
staticint | TUESDAY 指示 Tuesday 的 DAY_OF_WEEK 字段值。 |
staticint | UNDECIMBER 指示一年中第十三个月的 MONTH 字段值。 |
staticint | WEDNESDAY 指示 Wednesday 的 DAY_OF_WEEK 字段值。 |
staticint | WEEK_OF_MONTH get和 set的字段数字,指示当前月中的星期数。 |
staticint | WEEK_OF_YEAR get和 set的字段数字,指示当前年中的星期数。 |
staticint | YEAR 指示年的 get和 set的字段数字。 |
staticint | ZONE_OFFSET get和 set的字段数字,以毫秒为单位指示距 GMT 的大致偏移量。 |
构造方法摘要 | |
---|---|
protected | Calendar() 构造一个带有默认时区和语言环境的 Calendar。 |
protected | Calendar(TimeZone zone, Locale aLocale) 构造一个带有指定时区和语言环境的 Calendar。 |
方法摘要 | |
---|---|
abstractvoid | add(int field,int amount) 根据日历的规则,为给定的日历字段添加或减去指定的时间量。 |
boolean | after(Object when) 判断此 Calendar表示的时间是否在指定 Object表示的时间之后,返回判断结果。 |
boolean | before(Object when) 判断此 Calendar表示的时间是否在指定 Object表示的时间之前,返回判断结果。 |
void | clear() 将此 Calendar的所日历字段值和时间值(从历元至现在的毫秒偏移量)设置成未定义。 |
void | clear(int field) 将此 Calendar的给定日历字段值和时间值(从历元至现在的毫秒偏移量)设置成未定义。 |
Object | clone() 创建并返回此对象的一个副本。 |
int | compareTo(Calendar anotherCalendar) 比较两个 Calendar对象表示的时间值(从历元至现在的毫秒偏移量)。 |
protectedvoid | complete() 填充日历字段中所有未设置的字段。 |
protected abstractvoid | computeFields() 将当前毫秒时间值 time 转换为 fields[] 中的日历字段值。 |
protected abstractvoid | computeTime() 将 fields[] 中的当前日历字段值转换为毫秒时间值 time。 |
boolean | equals(Object obj) 将此 Calendar与指定 Object比较。 |
int | get(int field) 返回给定日历字段的值。 |
int | getActualMaximum(int field) 给定此 Calendar的时间值,返回指定日历字段可能拥有的最大值。 |
int | getActualMinimum(int field) 给定此 Calendar的时间值,返回指定日历字段可能拥有的最小值。 |
static Locale[] | getAvailableLocales() 返回所有语言环境的数组,此类的 getInstance方法可以为其返回本地化的实例。 |
String | getDisplayName(int field,int style, Locale locale) 返回给定 style和 locale下的日历 field值的字符串表示形式。 |
Map<String,Integer> | getDisplayNames(int field,int style, Locale locale) 返回给定 style和 locale下包含日历 field所有名称的 Map及其相应字段值。 |
int | getFirstDayOfWeek() 获取一星期的第一天;例如,在美国,这一天是 SUNDAY,而在法国,这一天是 MONDAY。 |
abstractint | getGreatestMinimum(int field) 返回此 Calendar实例给定日历字段的最高的最小值。 |
static Calendar | getInstance() 使用默认时区和语言环境获得一个日历。 |
static Calendar | getInstance(Locale aLocale) 使用默认时区和指定语言环境获得一个日历。 |
static Calendar | getInstance(TimeZone zone) 使用指定时区和默认语言环境获得一个日历。 |
static Calendar | getInstance(TimeZone zone, Locale aLocale) 使用指定时区和语言环境获得一个日历。 |
abstractint | getLeastMaximum(int field) 返回此 Calendar实例给定日历字段的最低的最大值。 |
abstractint | getMaximum(int field) 返回此 Calendar实例给定日历字段的最大值。 |
int | getMinimalDaysInFirstWeek() 获取一年中第一个星期所需的最少天数,例如,如果定义第一个星期包含一年第一个月的第一天,则此方法将返回 1。 |
abstractint | getMinimum(int field) 返回此 Calendar实例给定日历字段的最小值。 |
Date | getTime() 返回一个表示此 Calendar时间值(从历元至现在的毫秒偏移量)的 Date对象。 |
long | getTimeInMillis() 返回此 Calendar 的时间值,以毫秒为单位。 |
TimeZone | getTimeZone() 获得时区。 |
int | hashCode() 返回该此日历的哈希码。 |
protectedint | internalGet(int field) 返回给定日历字段的值。 |
boolean | isLenient() 判断日期/时间的解释是否为宽松的。 |
boolean | isSet(int field) 确定给定日历字段是否已经设置了一个值,其中包括因为调用 get方法触发内部字段计算而导致已经设置该值的情况。 |
abstractvoid | 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、 MINUTE和 SECOND的值。 |
void | setFirstDayOfWeek(int value) 设置一星期的第一天是哪一天;例如,在美国,这一天是 SUNDAY,而在法国,这一天是 MONDAY。 |
void | setLenient(boolean lenient) 指定日期/时间解释是否是宽松的。 |
void | setMinimalDaysInFirstWeek(int value) 设置一年中第一个星期所需的最少天数,例如,如果定义第一个星期包含一年第一个月的第一天,则使用值 1 调用此方法。 |
void | setTime(Date date) 使用给定的 Date设置此 Calendar 的时间。 |
void | setTimeInMillis(long millis) 用给定的long 值设置此 Calendar 的当前时间值。 |
void | setTimeZone(TimeZone value) 使用给定的时区值来设置时区。 |
String | toString() 返回此日历的字符串表示形式。 |
从类 java.lang.Object 继承的方法 |
---|
finalize, getClass, notify, notifyAll, wait, wait, wait |
字段详细信息 |
---|
ERA
public static finalint ERA
指示年代的
get和
set的字段数字,比如罗马儒略历中的 AD 或 BC。这是一个特定于日历的值;请参阅子类文档。
另请参见:GregorianCalendar.AD, GregorianCalendar.BC, 常量字段值
YEAR
public static finalint YEAR
指示年的
get和
set的字段数字。这是一个特定于日历的值;请参阅子类文档。
另请参见:常量字段值
MONTH
public static finalint MONTH
指示月份的
get和
set的字段数字。这是一个特定于日历的值。在格里高利历和罗马儒略历中一年中的第一个月是
JANUARY,它为 0;最后一个月取决于一年中的月份数。
另请参见:JANUARY, FEBRUARY, MARCH, APRIL, MAY, JUNE, JULY, AUGUST, SEPTEMBER, OCTOBER, NOVEMBER, DECEMBER, UNDECIMBER, 常量字段值
WEEK_OF_YEAR
public static finalint WEEK_OF_YEAR
get和
set的字段数字,指示当前年中的星期数。正如
getFirstDayOfWeek()和
getMinimalDaysInFirstWeek()所定义的那样,一年中第一个星期的值为 1。子类定义一年第一个星期之前的天数,即
WEEK_OF_YEAR的值。
另请参见:getFirstDayOfWeek(), getMinimalDaysInFirstWeek(), 常量字段值
WEEK_OF_MONTH
public static finalint WEEK_OF_MONTH
get和
set的字段数字,指示当前月中的星期数。正如
getFirstDayOfWeek()和
getMinimalDaysInFirstWeek()所定义的那样,一个月中第一个星期的值为 1。子类定义一个月第一个星期之前的天数,即
WEEK_OF_MONTH的值。
另请参见:getFirstDayOfWeek(), getMinimalDaysInFirstWeek(), 常量字段值
DATE
public static finalint DATE
get和
set的字段数字,指示一个月中的某天。它与
DAY_OF_MONTH是同义词。一个月中第一天的值为 1。
另请参见:DAY_OF_MONTH, 常量字段值
DAY_OF_MONTH
public static finalint DAY_OF_MONTH
get和
set的字段数字,指示一个月中的某天。它与
DATE是同义词。一个月中第一天的值为 1。
另请参见:DATE, 常量字段值
DAY_OF_YEAR
public static finalint DAY_OF_YEAR
get和
set的字段数字,指示当前年中的天数。一年中第一天的值为 1。
另请参见:常量字段值
DAY_OF_WEEK
public static finalint DAY_OF_WEEK
get和
set的字段数字,指示一个星期中的某天。该字段可取的值为
SUNDAY、
MONDAY、
TUESDAY、
WEDNESDAY、
THURSDAY、
FRIDAY和
SATURDAY。
另请参见:SUNDAY, MONDAY, TUESDAY, WEDNESDAY, THURSDAY, FRIDAY, SATURDAY, 常量字段值
DAY_OF_WEEK_IN_MONTH
public static finalint DAY_OF_WEEK_IN_MONTH
get和
set的字段数字,指示当前月中的第几个星期。与
DAY_OF_WEEK字段一起使用时,就可以唯一地指定某月中的某一天。与
WEEK_OF_MONTH和
WEEK_OF_YEAR不同,该字段的值并不 取决于
getFirstDayOfWeek()或
getMinimalDaysInFirstWeek()。
DAY_OF_MONTH1
到
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和
DAY_OF_WEEK_IN_MONTH 4的末尾相重叠。
另请参见:DAY_OF_WEEK, WEEK_OF_MONTH, 常量字段值
AM_PM
public static finalint AM_PM
get和
set的字段数字,指示
HOUR是在中午之前还是在中午之后。例如,在 10:04:15.250 PM 这一时刻,
AM_PM为
PM。
另请参见:AM, PM, HOUR, 常量字段值
HOUR
public static finalint 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 finalint HOUR_OF_DAY
get和
set的字段数字,指示一天中的小时。
HOUR_OF_DAY用于 24 小时制时钟。例如,在 10:04:15.250 PM 这一时刻,
HOUR_OF_DAY为 22。
另请参见:HOUR, 常量字段值
MINUTE
public static finalint MINUTE
get和
set的字段数字,指示一小时中的分钟。例如,在 10:04:15.250 PM 这一时刻,
MINUTE为 4。
另请参见:常量字段值
SECOND
public static finalint SECOND
get和
set的字段数字,指示一分钟中的秒。例如,在 10:04:15.250 PM 这一时刻,
SECOND为 15。
另请参见:常量字段值
MILLISECOND
public static finalint MILLISECOND
get和
set的字段数字,指示一秒中的毫秒。例如,在 10:04:15.250 PM 这一时刻,
MILLISECOND为 250。
另请参见:常量字段值
ZONE_OFFSET
public static finalint ZONE_OFFSET
get和
set的字段数字,以毫秒为单位指示距 GMT 的大致偏移量。
如果
TimeZone实现子类支持历史上用过的 GMT 偏移量更改,则此字段可反应此
Calendar时区的正确 GMT 偏移量值。
另请参见:常量字段值
DST_OFFSET
public static finalint DST_OFFSET
get和
set的字段数字,以毫秒为单位指示夏令时的偏移量。
如果
TimeZone实现子类支持历史上用过的 Daylight Saving Time 时间表更改,则此字段可反应此
Calendar时区的正确夏令时偏移量值。
另请参见:常量字段值
FIELD_COUNT
public static finalint FIELD_COUNT
get和
set可识别的不同字段的数量。字段编号的范围是从 0 到
FIELD_COUNT-1。
另请参见:常量字段值
SUNDAY
public static finalint SUNDAY
指示 Sunday 的 DAY_OF_WEEK 字段值。
另请参见:常量字段值
MONDAY
public static finalint MONDAY
指示 Monday 的 DAY_OF_WEEK 字段值。
另请参见:常量字段值
TUESDAY
public static finalint TUESDAY
指示 Tuesday 的 DAY_OF_WEEK 字段值。
另请参见:常量字段值
WEDNESDAY
public static finalint WEDNESDAY
指示 Wednesday 的 DAY_OF_WEEK 字段值。
另请参见:常量字段值
THURSDAY
public static finalint THURSDAY
指示 Thursday 的 DAY_OF_WEEK 字段值。
另请参见:常量字段值
FRIDAY
public static finalint FRIDAY
指示 Friday 的 DAY_OF_WEEK 字段值。
另请参见:常量字段值
SATURDAY
public static finalint SATURDAY
指示 Saturday 的 DAY_OF_WEEK 字段值。
另请参见:常量字段值
JANUARY
public static finalint JANUARY
指示在格里高利历和罗马儒略历中一年中第一个月的 MONTH 字段值。
另请参见:常量字段值
FEBRUARY
public static finalint FEBRUARY
指示在格里高利历和罗马儒略历中一年中第二个月的 MONTH 字段值。
另请参见:常量字段值
MARCH
public static finalint MARCH
指示在格里高利历和罗马儒略历中一年中第三个月的 MONTH 字段值。
另请参见:常量字段值
APRIL
public static finalint APRIL
指示在格里高利历和罗马儒略历中一年中第四个月的 MONTH 字段值。
另请参见:常量字段值
MAY
public static finalint MAY
指示在格里高利历和罗马儒略历中一年中第五个月的 MONTH 字段值。
另请参见:常量字段值
JUNE
public static finalint JUNE
指示在格里高利历和罗马儒略历中一年中第六个月的 MONTH 字段值。
另请参见:常量字段值
JULY
public static finalint JULY
指示在格里高利历和罗马儒略历中一年中第七个月的 MONTH 字段值。
另请参见:常量字段值
AUGUST
public static finalint AUGUST
指示在格里高利历和罗马儒略历中一年中第八个月的 MONTH 字段值。
另请参见:常量字段值
SEPTEMBER
public static finalint SEPTEMBER
指示在格里高利历和罗马儒略历中一年中第九个月的 MONTH 字段值。
另请参见:常量字段值
OCTOBER
public static finalint OCTOBER
指示在格里高利历和罗马儒略历中一年中第十个月的 MONTH 字段值。
另请参见:常量字段值
NOVEMBER
public static finalint NOVEMBER
指示在格里高利历和罗马儒略历中一年中第十一个月的 MONTH 字段值。
另请参见:常量字段值
DECEMBER
public static finalint DECEMBER
指示在格里高利历和罗马儒略历中一年中第十二个月的 MONTH 字段值。
另请参见:常量字段值
UNDECIMBER
public static finalint UNDECIMBER
指示一年中第十三个月的 MONTH 字段值。尽管
GregorianCalendar没有使用该值,但阴历会使用。
另请参见:常量字段值
AM
public static finalint AM
指示从午夜到中午之前这段时间的 AM_PM 字段值。
另请参见:常量字段值
PM
public static finalint PM
指示从中午到午夜之前这段时间的 AM_PM 字段值。
另请参见:常量字段值
ALL_STYLES
public static finalint ALL_STYLES
指示所有风格名称的 getDisplayNames 的风格说明符,比如 "January" 和 "Jan"。
从以下版本开始:1.6另请参见:SHORT, LONG, 常量字段值
SHORT
public static finalint SHORT
指示短名称的 getDisplayName 和 getDisplayNames 的风格说明符,比如 "Jan"。
从以下版本开始:1.6另请参见:LONG, 常量字段值
LONG
public static finalint LONG
指示长名称的 getDisplayName 和 getDisplayNames 的风格说明符,比如 "January"。
从以下版本开始:1.6另请参见:SHORT, 常量字段值
fields
protectedint[] fields
此日历当前设置时间的日历字段值。这是一个
FIELD_COUNT整数数组,索引值为 ERA 到
DST_OFFSET。
isSet
protectedboolean[] isSet
通知是否设置了该日历某一指定日历字段的标志。新的对象没有设置任何字段。在第一次调用生成该字段的某一方法后,这些字段都将保留调用之后的设置。这是一个
FIELD_COUNT布尔值数组,索引值为 ERA 到
DST_OFFSET。
time
protectedlong time
日历的当前设置时间,以毫秒为单位,表示自格林威治标准时间 1970 年 1月 1 日 0:00:00 后经过的时间。
另请参见:isTimeSet
isTimeSet
protectedboolean isTimeSet
如果
time值是一个有效值,则返回 true。通过更改
field[]的项,可以使时间无效。
另请参见:time
areFieldsSet
protectedboolean areFieldsSet
如果
fields[]与当前的设置时间同步,则返回 true。如果返回 false,则在下一次试图获得某一字段的值时,将强行重新计算
time当前值中的所有字段。
构造方法详细信息 |
---|
Calendar
protected Calendar()
构造一个带有默认时区和语言环境的 Calendar。
另请参见:TimeZone.getDefault()
Calendar
protected Calendar(TimeZone zone, Locale aLocale)
构造一个带有指定时区和语言环境的 Calendar。
参数:
zone- 要使用的时区
aLocale- 用于星期数据的语言环境
方法详细信息 |
---|
getInstance
public static Calendar getInstance()
使用默认时区和语言环境获得一个日历。返回的
Calendar基于当前时间,使用了默认时区和默认语言环境。
返回:一个 Calendar。
getInstance
public static Calendar getInstance(TimeZone zone)
使用指定时区和默认语言环境获得一个日历。返回的
Calendar基于当前时间,使用了给定时区和默认语言环境。
参数:
zone- 要使用的时区返回:一个 Calendar。
getInstance
public static Calendar getInstance(Locale aLocale)
使用默认时区和指定语言环境获得一个日历。返回的
Calendar基于当前时间,使用了默认时区和给定的语言环境。
参数:
aLocale- 用于星期数据的语言环境返回:一个 Calendar。
getInstance
public static Calendar getInstance(TimeZone zone, Locale aLocale)
使用指定时区和语言环境获得一个日历。返回的
Calendar基于当前时间,使用了给定的时区和给定的语言环境。
参数:
zone- 要使用的时区
aLocale- 用于星期数据的语言环境返回:一个 Calendar。
getAvailableLocales
public static Locale[] getAvailableLocales()
返回所有语言环境的数组,此类的
getInstance方法可以为其返回本地化的实例。返回的数组必须至少包含一个
Locale实例,它等同 Locale.US。
返回:语言环境的数组,对于该数组,本地化的
Calendar实例是可用的。
computeTime
protected abstractvoid computeTime()
将 fields[] 中的当前日历字段值转换为毫秒时间值 time。
另请参见:complete(), computeFields()
computeFields
protected abstractvoid computeFields()
将当前毫秒时间值 time 转换为 fields[] 中的日历字段值。这允许您将该日历字段值与为日历设置的新时间同步。并不 首先重新计算该时间;为了重新计算时间和字段,请调用 complete() 方法。
另请参见:computeTime()
getTime
public finalDate getTime()
返回一个表示此
Calendar时间值(从历元至现在的毫秒偏移量)的
Date对象。
返回:表示时间值的
Date。另请参见:setTime(Date), getTimeInMillis()
setTime
public finalvoid setTime(Date date)
使用给定的
Date设置此 Calendar 的时间。
注:使用
Date(Long.MAX_VALUE)或
Date(Long.MIN_VALUE)调用
setTime()可能产生来自
get()的错误字段值。
参数:
date- 给定的Date。另请参见:getTime(), setTimeInMillis(long)
getTimeInMillis
publiclong getTimeInMillis()
返回此 Calendar 的时间值,以毫秒为单位。
返回:当前时间,以从历元至现在所经过的 UTC 毫秒数形式。另请参见:getTime(), setTimeInMillis(long)
setTimeInMillis
publicvoid setTimeInMillis(long millis)
用给定的long 值设置此 Calendar 的当前时间值。
参数:
millis- 新时间,以从历元至现在所经过的 UTC 毫秒数形式。另请参见:setTime(Date), getTimeInMillis()
get
publicint get(int field)
返回给定日历字段的值。在 lenient 模式下,所有日历字段都被标准化。在 non-lenient 模式下,所有日历字段都是经过验证的,如果任何日历字段有超出范围的值,则此方法抛出一个异常。标准化和验证都是通过 complete() 方法处理的,这个过程与日历系统有关。
参数:
field- 给定的日历字段。返回:给定日历字段的值。抛出:
ArrayIndexOutOfBoundsException- 如果指定字段超出范围 (
field < 0 || field >= FIELD_COUNT)。另请参见:set(int,int), complete()
internalGet
protected finalintinternalGet(int field)
返回给定日历字段的值。此方法不涉及字段值的标准化或验证。
参数:
field- 给定的日历字段。返回:给定日历字段的值。另请参见:get(int)
set
publicvoid set(int field,
int value)
将给定的日历字段设置为给定值。不管处于何种宽松性模式下,该值都不由此方法进行解释。
参数:
field- 给定的日历字段。
value- 给定日历字段所要设置的值。抛出:
ArrayIndexOutOfBoundsException- 如果指定字段超出范围 (
field < 0 || field >= FIELD_COUNT),并且处于 non-lenient 模式下。另请参见:set(int,int,int), set(int,int,int,int,int), set(int,int,int,int,int,int), get(int)
set
public finalvoid set(int year,
int month,
int date)
设置日历字段
YEAR、
MONTH和
DAY_OF_MONTH的值。保留其他日历字段以前的值。如果不需要这样做,则先调用 clear()。
参数:
year- 用来设置
YEAR日历字段的值。
month- 用来设置
MONTH日历字段的值。Month 值是基于 0 的。例如,0 表示 January。
date- 用来设置
DAY_OF_MONTH日历字段的值。另请参见:set(int,int), set(int,int,int,int,int), set(int,int,int,int,int,int)
set
public finalvoid set(int year,
int month,
int date,
int hourOfDay,
int minute)
设置日历字段
YEAR、
MONTH、
DAY_OF_MONTH、
HOUR_OF_DAY和
MINUTE的值。保留其他字段以前的值。如果不需要这样做,则先调用 clear()。
参数:
year- 用来设置
YEAR日历字段的值。
month- 用来设置
MONTH日历字段的值。Month 值是基于 0 的。例如,0 表示 January。
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 finalvoid set(int year,
int month,
int date,
int hourOfDay,
int minute,
int second)
设置字段
YEAR、
MONTH、
DAY_OF_MONTH、
HOUR、
MINUTE和
SECOND的值。保留其他字段以前的值。如果不需要这样做,则先调用 clear()。
参数:
year- 用来设置
YEAR日历字段的值。
month- 用来设置
MONTH日历字段的值。Month 值是基于 0 的。例如,0 表示 January。
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 finalvoid clear()
将此
Calendar的所日历字段值和时间值(从历元至现在的毫秒偏移量)设置成未定义。这意味着 isSet() 对于所有的日历字段都将返回
false,并且日期和时间计算会将这些字段作为从未设置的字段对待。
Calendar实现类可能对日期/时间计算使用字段的特定默认值。例如,如果未定义
YEAR字段值,则
GregorianCalendar会使用 1970。
另请参见:clear(int)
clear
public finalvoid clear(int field)
将此
Calendar的给定日历字段值和时间值(从历元至现在的毫秒偏移量)设置成未定义。这意味着 isSet(field) 将返回
false,并且日期和时间计算会将该字段作为从未设置的字段对待。
Calendar实现类可能对日期和时间计算使用字段的特定默认值。
HOUR_OF_DAY、HOUR 和 AM_PM 字段都是单独处理的,并且应用了一天中时间的解析规则。清除其中的一个字段不会重置此
Calendar中的小时值。使用 set(Calendar.HOUR_OF_DAY, 0) 重置小时值。
参数:
field- 要清除的日历字段。另请参见:clear()
isSet
public finalboolean isSet(int field)
确定给定日历字段是否已经设置了一个值,其中包括因为调用
get方法触发内部字段计算而导致已经设置该值的情况。
返回:如果给定日历字段已经设置了一个值,则返回
true;否则返回
false。
getDisplayName
publicString getDisplayName(int field,
int style,
Locale locale)
返回给定
style和
locale下的日历
field值的字符串表示形式。如果没有可用的字符串表示形式,则返回
null。如果字符串表示形式可用于给定的日历
field,则此方法调用 get(field) 来获取日历
field值。
例如,如果此
Calendar是
GregorianCalendar并且其日期是 2005-01-01,那么 MONTH 字段的字符串表示形式在英语语言环境中将是long 类型的 "January" 或者 short 类型的 "Jan"。然而,DAY_OF_MONTH字段没有可用的字符串表示形式,并且此方法将返回
null。
默认实现支持日历字段,DateFormatSymbols 在给定
locale中具有此类名称。
参数:
field- 其字符串表示形式返回的日历字段
style- 应用于字符串表示形式的类型;SHORT 或 LONG 之一。
locale- 字符串表示形式的语言环境返回:给定
style中给定
field的字符串表示形式;如果没有可用的字符串表示形式,则返回
null。抛出:
IllegalArgumentException- 如果
field或
style无效,如果此
Calendar处于 non-lenient 模式并且所有日历字段都有无效值
NullPointerException- 如果
locale为 null从以下版本开始:1.6
getDisplayNames
publicMap<String,Integer> getDisplayNames(int field,
int style,
Locale locale)
返回给定
style和
locale下包含日历
field所有名称的
Map及其相应字段值。例如,如果此
Calendar是 GregorianCalendar,则在英语语言环境的 short 类型中的返回映射将包含 "Jan" 到 JANUARY,"Feb" 到 FEBRUARY 诸如此类。
可以考虑用其他日历字段值来确定显示名称集。例如,如果此
Calendar是月与日的日历系统并且由 YEAR 字段给定的年值有闰月,此方法将返回包含闰月名称的月名称,并且月名称被映射到该年中其指定值。
默认实现支持DateFormatSymbols 中包含的显示名称。例如,如果
field是 MONTH 并且
style是 ALL_STYLES,则此方法返回包含DateFormatSymbols.getShortMonths() 和DateFormatSymbols.getMonths() 返回的所有字符串的
Map。
参数:
field- 其返回显示名称的日历字段
style- 应用于显示名称的风格;SHORT、LONG 或 ALL_STYLES 之一。
locale- 显示名称的语言环境返回:包含
style和
locale下的所有显示名称的
Map及其字段值;如果没有显示名称,则返回
null抛出:
IllegalArgumentException- 如果
field或
style无效,如果此
Calendar处于 non-lenient 模式并且所有日历字段都有无效值
NullPointerException- 如果
locale为 null从以下版本开始:1.6
complete
protectedvoid complete()
填充日历字段中所有未设置的字段。首先,如果已经从日历字段值中计算出了时间值(从历元至现在的毫秒偏移量),则调用 computeTime() 方法。然后调用 computeFields() 方法来计算所有的日历字段值。
equals
publicboolean equals(Object obj)
将此
Calendar与指定
Object比较。当且仅当参数是同一日历系统的
Calendar对象时,结果才为
true,该日历系统将同一
Calendar参数下的同一时间值(从历元至现在的毫秒偏移量)表示为此对象。
Calendar参数是通过
isLenient、
getFirstDayOfWeek、
getMinimalDaysInFirstWeek和
getTimeZone方法表示的值。如果在两个
Calendar之间这些参数中存在任何不同之处,则此方法返回
false。
使用 compareTo 方法来仅对时间值进行比较。
覆盖:类
Object中的
equals
参数:
obj- 要与之比较的对象。返回:如果此对象等于
obj,则返回
true;否则返回
false。另请参见:Object.hashCode(), Hashtable
hashCode
publicint hashCode()
返回该此日历的哈希码。
覆盖:类
Object中的
hashCode
返回:此对象的哈希码值。从以下版本开始:1.2另请参见:Object.equals(java.lang.Object), Hashtable
before
publicboolean before(Object when)
判断此
Calendar表示的时间是否在指定
Object表示的时间之前,返回判断结果。此方法等效于:
compareTo(when) < 0
当且仅当
when是一个
Calendar实例时才返回 true。否则该方法返回
false。
参数:
when- 要比较的
Object返回:如果此
Calendar的时间在
when表示的时间之前,则返回
true;否则返回
false。另请参见:compareTo(Calendar)
after
publicboolean after(Object when)
判断此
Calendar表示的时间是否在指定
Object表示的时间之后,返回判断结果。此方法等效于:
compareTo(when) > 0
当且仅当
when是一个
Calendar实例时才返回 true。否则该方法返回
false。
参数:
when- 要比较的
Object返回:如果此
Calendar的时间在
when表示的时间之后,则返回
true;否则返回
false。另请参见:compareTo(Calendar)
compareTo
publicint compareTo(Calendar anotherCalendar)
比较两个
Calendar对象表示的时间值(从历元至现在的毫秒偏移量)。
指定者:接口
Comparable<Calendar>中的
compareTo
参数:
anotherCalendar- 要比较的
Calendar。返回:如果参数表示的时间等于此
Calendar表示的时间,则返回
0值;如果此
Calendar的时间在参数表示的时间之前,则返回小于
0的值;如果此
Calendar的时间在参数表示的时间之后,则返回大于
0的值。抛出:
NullPointerException- 如果指定的
Calendar为
null。
IllegalArgumentException- 如果因为无效的日历值而无法获得指定
Calendar对象的时间值。从以下版本开始:1.5
add
public abstractvoid add(int field,
int amount)
根据日历的规则,为给定的日历字段添加或减去指定的时间量。例如,要从当前日历时间减去 5 天,可以通过调用以下方法做到这一点:
add(Calendar.DAY_OF_MONTH, -5)。
参数:
field- 日历字段。
amount- 为字段添加的日期或时间量。另请参见:roll(int,int), set(int,int)
roll
public abstractvoid roll(int field,
boolean up)
在给定的时间字段上添加或减去(上/下)单个时间单元,不更改更大的字段。例如,要将当前日期向上滚动一天,可以通过调用以下方法做到这一点:
roll(Calendar.DATE, true)。在 year 或 Calendar.YEAR 字段上滚动时,将在从 1 到调用
getMaximum(Calendar.YEAR)的返回值之间的范围内滚动 year 值。在 month 或 Calendar.MONTH 字段上滚动时,其他字段(如 date)可能发生冲突,因此需要更改它们。例如,在日期 01/31/96 上滚动 month 将产生 02/29/96 的日期。在 hour-in-day 或 Calendar.HOUR_OF_DAY
字段上滚动时,小时值会在 0 到 23 之间的范围内滚动,它是基于 0 的。
参数:
field- 时间字段。
up- 指示指定时间字段的值是向上滚动还是向下滚动。如果向上滚动,则使用 true,否则使用 false。另请参见:add(int,int), set(int,int)
roll
publicvoid roll(int field,
int amount)
向指定日历字段添加指定(有符号的)时间量,不更改更大的字段。负的时间量意味着向下滚动。
注:
Calendar上的此默认实现只是重复地调用滚动一个单元的 roll() 版本。这可能并非总是正确的。例如,如果
DAY_OF_MONTH字段为 31,则在 February 的范围内滚动会将它设置为 28。此函数的
GregorianCalendar版本会小心地处理这个问题。其他子类还应该提供此函数的重写版本,以正确实现该功能。
参数:
field- 日历字段。
amount- 要添加到日历
field中的有符号时间量。从以下版本开始:1.2另请参见:roll(int,boolean), add(int,int), set(int,int)
setTimeZone
publicvoid setTimeZone(TimeZone value)
使用给定的时区值来设置时区。
参数:
value- 给定的时区。
getTimeZone
publicTimeZone getTimeZone()
获得时区。
返回:与此日历有关的时区对象。
setLenient
publicvoid setLenient(boolean lenient)
指定日期/时间解释是否是宽松的。对于宽松的解释,可以将诸如 "February 942, 1996" 之类的日期视为等同于 1996 年 1 月 1 日后的第 941 天。而对于严格的(non-lenient)解释,这样的日期会导致抛出异常。默认情况下是宽松的。
参数:
lenient- 如果开启 lenient 模式,则为
true;如果关闭此模式,则为
false。另请参见:isLenient(),DateFormat.setLenient(boolean)
isLenient
publicboolean isLenient()
判断日期/时间的解释是否为宽松的。
返回:如果此日历的解释模式是 lenient,则返回
true;否则返回
false。另请参见:setLenient(boolean)
setFirstDayOfWeek
publicvoid setFirstDayOfWeek(int value)
设置一星期的第一天是哪一天;例如,在美国,这一天是
SUNDAY,而在法国,这一天是
MONDAY。
参数:
value- 给出的一星期的第一天。另请参见:getFirstDayOfWeek(), getMinimalDaysInFirstWeek()
getFirstDayOfWeek
publicint getFirstDayOfWeek()
获取一星期的第一天;例如,在美国,这一天是
SUNDAY,而在法国,这一天是
MONDAY。
返回:一星期的第一天。另请参见:setFirstDayOfWeek(int), getMinimalDaysInFirstWeek()
setMinimalDaysInFirstWeek
publicvoid setMinimalDaysInFirstWeek(int value)
设置一年中第一个星期所需的最少天数,例如,如果定义第一个星期包含一年第一个月的第一天,则使用值 1 调用此方法。如果最少天数必须是一整个星期,则使用值 7 调用此方法。
参数:
value- 一年中第一个星期所需的给定最少天数。另请参见:getMinimalDaysInFirstWeek()
getMinimalDaysInFirstWeek
publicint getMinimalDaysInFirstWeek()
获取一年中第一个星期所需的最少天数,例如,如果定义第一个星期包含一年第一个月的第一天,则此方法将返回 1。如果最少天数必须是一整个星期,则此方法将返回 7。
返回:一年中第一个星期所需的最少天数。另请参见:setMinimalDaysInFirstWeek(int)
getMinimum
public abstractint getMinimum(int field)
返回此
Calendar实例给定日历字段的最小值。最小值被定义为 get 方法为任何可能时间值返回的最小值。最小值取决于日历系统实例的特定参数。
参数:
field- 日历字段。返回:给定日历字段的最小值。另请参见:getMaximum(int), getGreatestMinimum(int), getLeastMaximum(int), getActualMinimum(int), getActualMaximum(int)
getMaximum
public abstractint getMaximum(int field)
返回此
Calendar实例给定日历字段的最大值。最大值被定义为 get 方法为任何可能时间值返回的最大值。最大值取决于日历系统实例的特定参数。
参数:
field- 日历字段。返回:给定日历字段的最大值。另请参见:getMinimum(int), getGreatestMinimum(int), getLeastMaximum(int), getActualMinimum(int), getActualMaximum(int)
getGreatestMinimum
public abstractint getGreatestMinimum(int field)
返回此
Calendar实例给定日历字段的最高的最小值。最高的最小值被定义为 getActualMinimum(int) 方法为任何可能时间值返回的最大值。最高的最小值取决于日历系统实例的特定参数。
参数:
field- 日历字段。返回:给定日历字段的最高的最小值。另请参见:getMinimum(int), getMaximum(int), getLeastMaximum(int), getActualMinimum(int), getActualMaximum(int)
getLeastMaximum
public abstractint getLeastMaximum(int field)
返回此
Calendar实例给定日历字段的最低的最大值。最低的最大值被定义为 getActualMaximum(int) 方法为任何可能时间值返回的最小值。最低的最大值取决于日历系统实例的特定参数。例如,对于格里高利历系统,
Calendar将为
DAY_OF_MONTH字段返回 28,因为第 28 天是该日历最短那个月的最后一天,即普通年的二月。
参数:
field- 日历字段。返回:给定日历字段的最低的最大值。另请参见:getMinimum(int), getMaximum(int), getGreatestMinimum(int), getActualMinimum(int), getActualMaximum(int)
getActualMinimum
publicint getActualMinimum(int field)
给定此
Calendar的时间值,返回指定日历字段可能拥有的最小值。
此方法的默认实现使用了一个迭代算法来确定日历字段的实际最小值。如果可能的话,子类应该使用更有效的实现来重写此方法——在许多情况下,它们只是简单地返回
getMinimum()。
参数:
field- 日历字段返回:对于此
Calendar的时间值而言,给定日历字段的最小值从以下版本开始:1.2另请参见:getMinimum(int), getMaximum(int), getGreatestMinimum(int), getLeastMaximum(int), getActualMaximum(int)
getActualMaximum
publicint getActualMaximum(int field)
给定此
Calendar的时间值,返回指定日历字段可能拥有的最大值。例如,在某些年份中,
MONTH字段的实际最大值是 12,而在希伯来日历系统的其他年份中,该字段的实际最大值是 13。
此方法的默认实现使用了一个迭代算法来确定日历字段的实际最大值。如果有可能的话,子类应该使用一个更有效的实现来重写此方法。
参数:
field- 日历字段返回:对于此
Calendar的时间值而言,给定日历字段的最大值从以下版本开始:1.2另请参见:getMinimum(int), getMaximum(int), getGreatestMinimum(int), getLeastMaximum(int), getActualMaximum(int)
clone
publicObject clone()
创建并返回此对象的一个副本。
覆盖:类
Object中的
clone
返回:此对象的一个副本。另请参见:Cloneable
toString
publicString toString()
返回此日历的字符串表示形式。此方法仅在进行调试的时候使用,不同实现之间所返回的字符串格式可能有所不同。返回的字符串可能为空,但不可能为
null。
覆盖:类
Object中的
toString
返回:此日历的字符串表示形式。
Calendar类似用法
Android下的Calendar使用方法和示例android教程下的Calendar使用方法和示例
android教程下的Calendar使用方法和示例
相关文章推荐
- Android开发:ViewPage介绍&使用教程
- Android Studio快捷键汇总(Mac)
- Android Touch 手势触摸原理
- Android Studio debug使用release的签名
- android:ListView下拉刷新上拉加载更多(PullToRefresh框架抽取)
- Android Studio快捷键总结(Mac)
- Android apk压缩技术(二)——自定义progressbar
- iOS开发--tableview--Android中的listview
- Android游戏笔记(四)之绘制位图
- 如何获取Android唯一标识(唯一序列号)
- 三款Android炫酷Loading动画组件推荐
- hellocharts-android开源图表库(效果非常好)
- 获取Android版本名和版本号
- Mac下android_sdk配置环境变量
- Android JS交互
- ant android打包--学习第一弹
- 如何修改android工程的包名
- Android SQLite 抽象出CRUD操作工具类
- MVP+Retrofit+RXAndroid使用详解
- 使用Dagger 2进行依赖注入 - API介绍