java.util.Date implements java.io.Serializable, Cloneable, Comparable<Date>
所有日期類型的父類,已知子類Date、 Time、TimestampDate
, Date
表示特定的瞬間,精確到毫秒。
//默認(rèn)是創(chuàng)建一個(gè)代表系統(tǒng)當(dāng)前日期的Date對(duì)象
Date d = new Date();
//創(chuàng)建一個(gè)我們指定的時(shí)間的Date對(duì)象:
下面是使用帶參數(shù)的構(gòu)造方法,可以構(gòu)造指定日期的Date類對(duì)象,Date類中年份的參數(shù)應(yīng)該是實(shí)際需要代表的年份減去1900,實(shí)際需要代表的月份減去1以后的值。
Date d1 = new Date(2009-1900, 6-1, 12); (注意參數(shù)的設(shè)置啊!)
正確獲得一個(gè)date對(duì)象所包含的信息
如:
Date d2 = new Date(2009-1900, 6-1, 12);
//獲得年份 (注意年份要加上1900,這樣才是日期對(duì)象d2所代表的年份)
int year = d2.getYear() + 1900;
//獲得月份 (注意月份要加1,這樣才是日期對(duì)象d2所代表的月份)
int month = d2.getMonth() + 1;
//獲得日期
int date = d2.getDate();
//獲得小時(shí)
int hour = d2.getHours();
//獲得分鐘
int minute = d2.getMinutes();
//獲得秒
int second = d2.getSeconds();
//獲得星期 (注意:0代表星期日、1代表星期1、2代表星期2,其他的一次類推了)
int day = d2.getDay();
java.util.Calendar implements Serializable, Cloneable, Comparable<Calendar>
Calendar類的功能要比Date類強(qiáng)大很多,而且在實(shí)現(xiàn)方式上也比Date類要復(fù)雜一些,是一個(gè)用來(lái)操作日期的輔助類
Calendar類是一個(gè)抽象類,在實(shí)際使用時(shí)實(shí)現(xiàn)特定的子類的對(duì)象。由于Calendar類是抽象類,且Calendar類的構(gòu)造方法是protected的,所以無(wú)法使用Calendar類的構(gòu)造方法來(lái)創(chuàng)建對(duì)象,API中提供了getInstance方法用來(lái)創(chuàng)建對(duì)象。
創(chuàng)建一個(gè)代表系統(tǒng)當(dāng)前日期的Calendar對(duì)象:
Calendar c = Calendar.getInstance();//默認(rèn)是當(dāng)前日期
創(chuàng)建一個(gè)指定日期的Calendar對(duì)象:
使用Calendar類代表特定的時(shí)間,需要首先創(chuàng)建一個(gè)Calendar的對(duì)象,然后再設(shè)定該對(duì)象中的年月日參數(shù)來(lái)完成。
Calendar c1 = Calendar.getInstance();
c1.set(2009, 6 - 1, 12);
Calendar類中的一些些常量:
Calendar.YEAR——年份
Calendar.MONTH——月份
Calendar.DATE——日期
Calendar.DAY_OF_MONTH——月的某天
Calendar.HOUR——12小時(shí)制的小時(shí)
Calendar.HOUR_OF_DAY——24小時(shí)制的小時(shí)
Calendar.MINUTE——分鐘
Calendar.SECOND——秒
Calendar.DAY_OF_WEEK——星期幾
java.util.GregorianCalendar extends Calendar
GregorianCalendar
是 Calendar
的一個(gè)具體子類,提供了世界上大多數(shù)國(guó)家使用的標(biāo)準(zhǔn)日歷系統(tǒng)。
GregorianCalendar類對(duì)象的創(chuàng)建
GregorianCalendar有自己的構(gòu)造方法,而其父類Calendar沒(méi)有公開(kāi)的構(gòu)造方法哦。
GregorianCalendar() 在具有默認(rèn)語(yǔ)言環(huán)境的默認(rèn)時(shí)區(qū)內(nèi)使用當(dāng)前時(shí)間構(gòu)造一個(gè)默認(rèn)的 GregorianCalendar。 |
GregorianCalendar(int year, int month, int dayOfMonth) 在具有默認(rèn)語(yǔ)言環(huán)境的默認(rèn)時(shí)區(qū)內(nèi)構(gòu)造一個(gè)帶有給定日期設(shè)置的 GregorianCalendar。 |
GregorianCalendar(int year, int month, int dayOfMonth, int hourOfDay, int minute) 為具有默認(rèn)語(yǔ)言環(huán)境的默認(rèn)時(shí)區(qū)構(gòu)造一個(gè)具有給定日期和時(shí)間設(shè)置的GregorianCalendar。 |
GregorianCalendar(int year, int month, int dayOfMonth, int hourOfDay, int minute, int second) 為具有默認(rèn)語(yǔ)言環(huán)境的默認(rèn)時(shí)區(qū)構(gòu)造一個(gè)具有給定日期和時(shí)間設(shè)置的GregorianCalendar。 |
創(chuàng)建一個(gè)代表當(dāng)前日期的GregorianCalendar對(duì)象
GregorianCalendar gc = new GregorianCalendar();
//創(chuàng)建一個(gè)代表2009年6月12日的GregorianCalendar對(duì)象(注意參數(shù)設(shè)置哦,與其父類是一樣的哦,月份要減去1)
GregorianCalendar gc = new GregorianCalendar(2009,6-1,12);
字段屬性什么的都是隨其父Calendar了,另外:GregorianCalendar有下面一個(gè)方法:
isLeapYear
(int year)
: 確定給定的年份是否為閏年
java.text.DateFormat extends Format
DateFormat 是日期/時(shí)間格式化子類的抽象類,它以與語(yǔ)言無(wú)關(guān)的方式格式化并分析日期或時(shí)間。日期/時(shí)間格式化子類(如 SimpleDateFormat)允許進(jìn)行格式化(也就是日期 -> 文本)、分析(文本-> 日期)和標(biāo)準(zhǔn)化。將日期表示為 Date
對(duì)象,或者表示為從 GMT(格林尼治標(biāo)準(zhǔn)時(shí)間)1970 年,1 月 1 日 00:00:00 這一刻開(kāi)始的毫秒數(shù)。
java.text.SimpleDateFormat extends DateFormat
SimpleDateFormat
是一個(gè)以與語(yǔ)言環(huán)境相關(guān)的方式來(lái)格式化和分析日期的具體類。它允許進(jìn)行格式化(日期 ->文本)、分析(文本 -> 日期)和規(guī)范化。
所以本類可以實(shí)現(xiàn):String 到 Date Date到String的互轉(zhuǎn),如下:
SimpleDateFormat對(duì)象最常用的就是一下兩招了:
//注意構(gòu)造函數(shù)中是SimpleDateFormat類解析日期的模式,大小寫代表的意義完全不一樣哦
SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd hh:mm:ss");
//日期到字符串的轉(zhuǎn)換
String today = df.format(new Date());
//字符串到日期的轉(zhuǎn)換
Date date = df.parse("2009-06-12 02:06:37");
System.out.println(df.format(new Date()));
posted on 2012-07-04 19:38
zhanghu198901 閱讀(1006)
評(píng)論(0) 編輯 收藏