自JDK
引入的Calendar類是另一種不同類型的日期處理類
想象它是一個掛在牆壁上的典型日歷
有許多日期和頁數可以翻閱
Calendar類的基礎即有變量域的觀念
每個類元素都是域
並且這些域在Calendar類中表現為靜態變量
這些變量域
可以通過get/set類方法來獲得或者設置域值
// 獲得默認的Calendar實例
給它設置時間
Calendarcal = Calendar
getInstance();
intyear = cal
get(Calendar
YEAR);
cal
set(Calendar
MONTH
Calendar
NOVEMBER);
Calendar類的add和roll方法提供在日期之間轉換的能力
每個方法都由一個參數變量和一個參數值來修改
通過這個可為正數或負數的參數值來修改它
僅僅不同的是
add方法可以向高階的變量域溢出
例如
如果從九月三號向後倒退三天
將得到
Calendar cal = Calendar
getInstance();
cal
add(Calendar
DATE
);
// 值為: 星期六八月
:
:
EDT
然而使用roll方法向後回滾三天得出
Calendar cal = Calendar
getInstance();
cal
roll(Calendar
DATE
);
// 值為: 星期一九月
:
:
EDT
這就是為什麼通常主要使用add方法的原因
還有一個隱藏在最通用的Calendar的子類中的功能性方法
isLeapYear(判斷是否為閏年)方法
Calendar cal = Calendar
getInstance();
booleanleapYear = ( (GregorianCalendar)cal )
isLeapYear(
);
// 這個值是false
盡管它是一個實例方法
isLeapYear方法的行為表現像靜態方法
需要提供年份的參數傳值給日歷
通過接管日期修改的功能
java
util
Calendar類看上去更像是Data類的復雜版本
但是它還提供額外的功能
更不用說它的國際化支持
使得它值得擁有學習的難度曲線
From:http://tw.wingwit.com/Article/program/Java/JSP/201311/19299.html