第一部分 Calendar介绍
第一部分 Calendar介紹
Calendar 定義:
public abstract class Calendar implements Serializable, Cloneable, Comparable<Calendar> {}Calendar 可以看作是一個(gè)抽象類。
它的實(shí)現(xiàn),采用了設(shè)計(jì)模式中的工廠方法。表現(xiàn)在:當(dāng)我們獲取Calendar實(shí)例時(shí),Calendar會(huì)根據(jù)傳入的參數(shù)來返回相應(yīng)的Calendar對(duì)象。獲取Calendar實(shí)例,有以下兩種方式:
(1) 當(dāng)我們通過 Calendar.getInstance() 獲取日歷時(shí),默認(rèn)的是返回的一個(gè)GregorianCalendar對(duì)象。
???? GregorianCalendar是Calendar的一個(gè)實(shí)現(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)獲取日歷時(shí),是返回“對(duì)應(yīng)時(shí)區(qū)(zone) 或 地區(qū)(local)等所使用的日歷”。?
???? 例如,若是日本,則返回JapaneseImperialCalendar對(duì)象。
參考如下代碼:
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對(duì)象
// (02) 若地區(qū)是“JP”,則返回JapaneseImperialCalendar對(duì)象
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對(duì)象
return new GregorianCalendar(zone, aLocale);
}
當(dāng)我們獲取Calendar實(shí)例之后,就可以通過Calendar提供的一些列方法來操作日歷。
總結(jié)
以上是生活随笔為你收集整理的第一部分 Calendar介绍的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 数据结构与算法 -- 链表
- 下一篇: 数据结构与算法 -- 二叉树 ADT