java Calendar
1.1?Calendar類概念
Calendar是日歷類,在Date后出現(xiàn),替換掉了許多Date的方法。該類將所有可能用到的時(shí)間信息封裝為靜態(tài)成員變量,方便獲取。
Calendar為抽象類,由于語(yǔ)言敏感性,Calendar類在創(chuàng)建對(duì)象時(shí)并非直接創(chuàng)建,而是通過(guò)靜態(tài)方法創(chuàng)建,將語(yǔ)言敏感內(nèi)容處理好,再返回子類對(duì)象,
實(shí)際上,在歷史上有著許多種紀(jì)元的方法。它們的差異實(shí)在太大了,比如說(shuō)一個(gè)人的生日是"八月八日" 那么一種可能是陽(yáng)(公)歷的八月八日,但也可以是陰(農(nóng))歷的日期。所以為了計(jì)時(shí)的統(tǒng)一,必需指定一個(gè)日歷的選擇。那現(xiàn)在最為普及和通用的日歷就是 "Gregorian Calendar"。也就是我們?cè)谥v述年份時(shí)常用 "公元幾幾年"。Calendar 抽象類定義了足夠的方法,讓我們能夠表述日歷的規(guī)則。Java 本身提供了對(duì) "Gregorian Calendar" 規(guī)則的實(shí)現(xiàn)。我們從 Calendar.getInstance() 中所獲得的實(shí)例就是一個(gè) "GreogrianCalendar" 對(duì)象(與您通過(guò) new GregorianCalendar() 獲得的結(jié)果一致)。
?
?
Calendar 在 Java 中是一個(gè)抽象類(Abstract Class),GregorianCalendar 是它的一個(gè)具體實(shí)現(xiàn)。
?
我們也可以自己的 Calendar 實(shí)現(xiàn)類,然后將它作為 Calendar 對(duì)象返回(面向?qū)ο蟮奶匦?。同樣在 Internet 上,也有對(duì)中國(guó)農(nóng)歷的實(shí)現(xiàn)。本文對(duì)如何擴(kuò)展 Calendar 不作討論,大家可以通過(guò)察看上述 Calendar 的源碼來(lái)學(xué)習(xí)。
?
Calendar 與 Date 的轉(zhuǎn)換非常簡(jiǎn)單:
?
Calendar calendar = Calendar.getInstance();
// 從一個(gè) Calendar 對(duì)象中獲取 Date 對(duì)象
Date date = calendar.getTime();
// 將 Date 對(duì)象反應(yīng)到一個(gè) Calendar 對(duì)象中,
// Calendar/GregorianCalendar 沒(méi)有構(gòu)造函數(shù)可以接受 Date 對(duì)象
// 所以我們必需先獲得一個(gè)實(shí)例,然后設(shè)置 Date 對(duì)象
calendar.setTime(date);
?
?
1.2?Calendar類常用方法
?
l?public static Calendar getInstance()?//獲取日期對(duì)象
l?public int get(int field) //獲取時(shí)間字段值,字段參見(jiàn)幫助文檔
n?YEAR?年
n?MONTH 月,從0開(kāi)始算起,最大11;0代表1月,11代表12月。
n?DATE 天
n?HOUR 時(shí)
n?MINUTE分
n?SECOND秒
代碼演示:
Calendar c = Calendar.getInstance();
int year = c.get(Calendar.YEAR);
?
l?public void add(int field,int amount) //指定字段增加某值
代碼演示:
Calendar c = Calendar.getInstance();
//修改當(dāng)前時(shí)間為3天后
c.add(Calendar.DATE, 3);
//修改當(dāng)前時(shí)間為5小時(shí)后
c.add(Calendar.HOUR, 5);
?
l?public final void set(int field,int value)//設(shè)置指定字段的值
代碼演示:
Calendar c = Calendar.getInstance();
//設(shè)置時(shí)間為2020年5月20日
c.set(Calendar.YEAR, 2020);
c.set(Calendar.MONTH, 4);
c.set(Calendar.DATE, 20);
?
l?public final Date getTime() //獲取該日歷對(duì)象轉(zhuǎn)成的日期對(duì)象
代碼演示:
Calendar c = Calendar.getInstance();
Date d = c.getTime();
轉(zhuǎn)載于:https://www.cnblogs.com/wzhdcyy/p/8708322.html
總結(jié)
以上是生活随笔為你收集整理的java Calendar的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 工商银行信用卡APP叫什么名字?APP有
- 下一篇: 心得开始之路