第一部分 Calendar介绍
第一部分 Calendar介紹
Calendar 定義:
public abstract class Calendar implements Serializable, Cloneable, Comparable<Calendar> {}Calendar 可以看作是一個抽象類。
它的實現(xiàn),采用了設(shè)計模式中的工廠方法。表現(xiàn)在:當(dāng)我們獲取Calendar實例時,Calendar會根據(jù)傳入的參數(shù)來返回相應(yīng)的Calendar對象。獲取Calendar實例,有以下兩種方式:
(1) 當(dāng)我們通過 Calendar.getInstance() 獲取日歷時,默認(rèn)的是返回的一個GregorianCalendar對象。
???? GregorianCalendar是Calendar的一個實現(xiàn)類,它提供了世界上大多數(shù)國家/地區(qū)使用的標(biāo)準(zhǔn)日歷系統(tǒng)。
(2) 當(dāng)我們通過 Calendar.getInstance(TimeZone timezone, Locale locale) 或 Calendar.getInstance(TimeZone timezone) 或 Calendar.getInstance(Locale locale)獲取日歷時,是返回“對應(yīng)時區(qū)(zone) 或 地區(qū)(local)等所使用的日歷”。?
???? 例如,若是日本,則返回JapaneseImperialCalendar對象。
參考如下代碼:
public static Calendar getInstance()
{
// 調(diào)用createCalendar()創(chuàng)建日歷
Calendar cal = createCalendar(TimeZone.getDefaultRef(), Locale.getDefault());
cal.sharedZone = true;
return cal;
}
public static Calendar getInstance(TimeZone zone)
{
// 調(diào)用createCalendar()創(chuàng)建日歷
return createCalendar(zone, Locale.getDefault());
}
public static Calendar getInstance(Locale aLocale) {
// 調(diào)用createCalendar()創(chuàng)建日歷
Calendar cal = createCalendar(TimeZone.getDefaultRef(), aLocale);
cal.sharedZone = true;
return cal;
}
public static Calendar getInstance(TimeZone zone,
Locale aLocale)
{
// 調(diào)用createCalendar()創(chuàng)建日歷
return createCalendar(zone, aLocale);
}
private static Calendar createCalendar(TimeZone zone,
Locale aLocale)
{
// (01) 若地區(qū)是“th”,則返回BuddhistCalendar對象
// (02) 若地區(qū)是“JP”,則返回JapaneseImperialCalendar對象
if ("th".equals(aLocale.getLanguage())
&& ("TH".equals(aLocale.getCountry()))) {
return new sun.util.BuddhistCalendar(zone, aLocale);
} else if ("JP".equals(aLocale.getVariant())
&& "JP".equals(aLocale.getCountry())
&& "ja".equals(aLocale.getLanguage())) {
return new JapaneseImperialCalendar(zone, aLocale);
}
// (03) 否則,返回GregorianCalendar對象
return new GregorianCalendar(zone, aLocale);
}
當(dāng)我們獲取Calendar實例之后,就可以通過Calendar提供的一些列方法來操作日歷。
總結(jié)
以上是生活随笔為你收集整理的第一部分 Calendar介绍的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 数据结构与算法 -- 链表
- 下一篇: 数据结构与算法 -- 二叉树 ADT