calendar java是什么,讓我們一起了解一下?
Calendar在Java中是一個(gè)抽象日歷類,該類將所有可能用到的時(shí)間信息封裝為靜態(tài)成員變量,方便獲取。常用方法是,根據(jù)日歷的規(guī)則,為給定的日歷字段添加或減去指定的時(shí)間量。
那么究竟什么是一個(gè)?Calendar呢?
中文的翻譯就是日歷,那我們立刻可以想到我們生活中有陽(公)歷、陰(農(nóng))歷之分。
它們的區(qū)別在哪呢?
比如有:月份的定義 - 陽`(公)歷 一年12 個(gè)月,每個(gè)月的天數(shù)各不同;陰(農(nóng))歷,每個(gè)月固定28天。每周的第一天 - 陽(公)歷星期日是第一天;陰(農(nóng))歷,星期一是第一天。
實(shí)際上,在歷史上有著許多種紀(jì)元的方法。它們的差異實(shí)在太大了,比如說一個(gè)人的生日是"八月八日" 那么一種可能是陽(公)歷的八月八日,但也可以是陰(農(nóng))歷的日期。所以為了計(jì)時(shí)的統(tǒng)一,必需指定一個(gè)日歷的選擇。那現(xiàn)在最為普及和通用的日歷就是 “Gregorian Calendar”。也就是我們在講述年份時(shí)常用 “公元幾幾年”。Calendar 抽象類定義了足夠的方法,讓我們能夠表述日歷的規(guī)則。Java 本身提供了對 “Gregorian Calendar” 規(guī)則的實(shí)現(xiàn)。我們從 Calendar.getInstance() 中所獲得的實(shí)例就是一個(gè) “GreogrianCalendar” 對象(與您通過 new GregorianCalendar() 獲得的結(jié)果一致)。
下面的代碼可以證明這一點(diǎn):
import?java.io.*;?import?java.util.*; public?class?WhatIsCalendar{ Nm寸59N8 public?static?void?main(String[]?args){?Calendar?calendar=Calendar.getInstance();?if(calendar?instanceof?GregorianCalendar) System.out.println("It?is?an?instance?of?GregorianCalendar"t;1011
Calendar 在 Java 中是一個(gè)抽象類(Abstract Class),GregorianCalendar 是它的一個(gè)具體實(shí)現(xiàn)。
我們也可以自己的 Calendar 實(shí)現(xiàn)類,然后將它作為 Calendar 對象返回(面向?qū)ο蟮奶匦?。在 IBM alphaWorks 上,IBM 的開發(fā)人員實(shí)現(xiàn)了多種日歷,同樣在 Internet 上,也有對中國農(nóng)歷的實(shí)現(xiàn)。本文對如何擴(kuò)展 Calendar 不作討論,大家可以通過察看上述 Calendar 的源碼來學(xué)習(xí)。
Calendar 與 Date 的轉(zhuǎn)換非常簡單:
Calendar?calendar=Calendar.getInstance();//?從一個(gè)Calendar?對象中獲取?Date?對象 3 Date?date?=?calendar.getTime(); 4?//將?Date?對象反應(yīng)到一個(gè)Calendar?對象中,? 5?//?Calendar/GregorianCalendar?沒有構(gòu)造函數(shù)可以接受?Date?對象? 6?//所以我們必需先獲得一個(gè)實(shí)例,然后設(shè)置?Date?對象? calendar.setTime(date);
以上就是小編今天的分享了,希望可以幫助到大家。