Calender使用
關(guān)鍵字
ERA = 0
year numbering system
YEAR = 1
年
MONTH = 2
月:{0,1,2,3,4,5,6,7,8,9,10,11,12}-->{一,二,三,四,五,六,七,八,九,十,十一,十二,十三}
注意:與自然月相比小1,多了一個十三月
WEEK_OF_YEAR = 3
一年中的第幾周腾务,自然周
WEEK_OF_MONTH = 4
一月中的第幾周,自然周
DATE = DAY_OF_MONTH = 5
日期&一月中的第幾天
DAY_OF_YEAR = 6
一年中的第幾天
DAY_OF_WEEK = 7
一周中的第幾天{1,2,3,4,5,6,7}-->{日,一,二,三,四,五,六}
DAY_OF_WEEK_IN_MONTH = 8
一月中的第幾周岩瘦,計算周,1日~7日為1启昧,以此類推
AM_PM = 9
上午返回0,下午和12點返回1
HOUR = 10
小時叙凡,12小時制
HOUR_OF_DAY = 11
小時密末,24小時制
MINUTE = 12
分鐘
SECOND = 13
秒
MILLISECOND = 14
毫秒
ZONE_OFFSET = 15
GMT相比時區(qū)偏移
DST_OFFSET = 16
夏令時偏移值
FIELD_COUNT = 17;
識別的不同字段的數(shù)量
set方法
set(int field, int value) 是用來設(shè)置"年/月/日/小時/分鐘/秒/微秒"等值
field 的定義在 Calendar 中
set(int year, int month, int day, int hour, int minute, int second)
注意:月份的起始值為0而不是1,所以要設(shè)置n月時苏遥,我們用n-1饼拍。
容錯處理
容錯開關(guān)Lenient田炭,調(diào)用setLenient設(shè)置容錯開關(guān)
set方法調(diào)用值發(fā)生錯誤時师抄,例:
if(Lenient)
set(Calendar.MONTH, -3) //計算三個月之前的日期
set(Calendar.DAY, 33) //計算33天之后的日期
else
set(Calendar.MONTH, -3) //java.lang.IllegalArgumentException
set(Calendar.DAY, 33) //java.lang.IllegalArgumentException
add() 與 roll()方法
add方法
規(guī)則1
當被修改的字段超出它可以的范圍時教硫,那么比它大的字段會自動修正辆布。
規(guī)則2
如果比它小的字段是不可變的(由 Calendar 的實現(xiàn)類決定),那么該小字段會修正到變化最小的值茶鉴。