Java语言中提供了三个日期类_Java语言学习(5)-Java中基础封装类(日期、时间类)...
日期和時(shí)間封裝類
1、 Data類
Java日期和時(shí)間采用Data類。Data類在java.util包中。
Data類構(gòu)造函數(shù):
1)?????? Data()?? 采用當(dāng)前時(shí)間初始化對(duì)象;
2)?????? Data(long millisec)?? 采用1970年1月1日起時(shí)間毫秒數(shù)來初始化對(duì)象。
Data類的方法:
1)?????? boolean after(Data d)、boolean before(Data d)
Data對(duì)象和參數(shù)指定日期較早晚,返回boolean值。
2)?????? boolean equals(Object data)
判斷Data對(duì)象和參數(shù)中日期是否相等。
3)?????? int compareTo(Data d)
Data對(duì)象和日期參數(shù)比較,返回int值:
相等則返回0;
Data對(duì)象在參數(shù)日期參數(shù)后,返回正數(shù);
否則返回負(fù)數(shù)
4)?????? long getTime( )
返回1970 年 1 月 1 日 00:00:00 GMT起時(shí)間毫秒數(shù)
5)?????? void setTime(long time)
用1970 年 1 月 1 日 00:00:00 GMT起時(shí)間毫秒數(shù)設(shè)置日期和時(shí)間
6)?????? String toString()
把Date 對(duì)象轉(zhuǎn)換為以下形式的 String:dow mon dd hh:mm:ss zzz yyyy,其中dow標(biāo)識(shí)星期幾
2、 日期格式化:
一、SimpleDateFormat類
SimpleDateFormat類是個(gè)日期格式化類。SimpleDataFormat是一個(gè)以語言環(huán)境敏感的方式來格式化和分析日期的類。樣例:
Date dNow = new Date();
SimpleDateFormat ft = new SimpleDateFormat ("yyyy-MM-dd hh:mm:ss");
ft.format(dNow)
二、使用printf格式化Data對(duì)象的輸出格式:
printf方法可以很輕松地格式化時(shí)間和日期。使用兩個(gè)字母格式,它以%t開頭并且以表示格式的字母結(jié)尾。
1)?????? %tc
包括全部日期和時(shí)間信息,星期六 十月 27 14:21:20 CST 2007
2)?????? %tF
"年-月-日"格式 2007-10-27
3)?????? %tD "
月/日/年"格式 10/27/07
4)?????? %tr
"HH:MM:SS PM"格式(12時(shí)制) 02:25:51 下午
5)?????? %tT
"HH:MM:SS"格式(24時(shí)制)14:28:16
6)?????? %tR
"HH:MM"格式(24時(shí)制)14:28
三、解析時(shí)間字符串為時(shí)間對(duì)象:
SimpleDateFormat 類有一些附加的方法,特別是parse(),它試圖按照給定的SimpleDateFormat 對(duì)象的格式化存儲(chǔ)來解析字符串。樣例:
SimpleDateFormat ft = new SimpleDateFormat ("yyyy-MM-dd");
String input = "1818-11-11";
Date t;
t = ft.parse(input);
3、 進(jìn)程休眠
可以采用如下方式進(jìn)入停滯狀態(tài)(阻塞當(dāng)前線程),讓出CPU的使用。樣例:
Thread.sleep(1000*3); // 休眠3秒
4、 Calender類
如何設(shè)置和獲取日期數(shù)據(jù)的特定部分呢,比如說小時(shí),日,或者分鐘?又如何在日期的這些部分加上或者減去值呢? 答案是使用Calendar 類。
Calendar類的功能要比Date類強(qiáng)大很多,而且在實(shí)現(xiàn)方式上也比Date類要復(fù)雜一些。
Calendar類是一個(gè)抽象類,在實(shí)際使用時(shí)實(shí)現(xiàn)特定的子類的對(duì)象,創(chuàng)建對(duì)象的過程對(duì)程序員來說是透明的,只需要使用getInstance方法創(chuàng)建即可。
1)?????? 創(chuàng)建Calendar類對(duì)象。由于Calendar類是個(gè)抽象類,其創(chuàng)建對(duì)象方式不同:
Calendar c = Calendar.getInstance();? //創(chuàng)建一個(gè)Calendar對(duì)象,時(shí)間是當(dāng)前時(shí)間
2)?????? 修改calendar對(duì)象的時(shí)間
方式一:public final void set(int year,int month,int date)
樣例:
c.set(2009, 6 - 1, 12);
方式二:指定日期中某個(gè)字段,修改
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 星期幾
樣例:
c.set(Calendar.DATE,10);
c.set(Calendar.YEAR,2008);
3)?????? 獲取Calendar對(duì)象的具體某個(gè)字段
樣例:
// 獲得年份
int year = c1.get(Calendar.YEAR);
// 獲得分鐘
int minute = c1.get(Calendar.MINUTE);
// 獲得秒
int second = c1.get(Calendar.SECOND);
// 獲得星期幾(注意(這個(gè)與Date類是不同的):1代表星期日、2代表星期1、3代表星期二,以此類推)
int day = c1.get(Calendar.DAY_OF_WEEK);
4)?????? Calendar對(duì)象的具體某個(gè)加減操作
樣例:
c.add(Calendar.DATE, 10);? //10天后時(shí)間
c.add(Calendar.DATE, -10);? //10天前時(shí)間
5、 GregorianCalendar
GregorianCalendar類實(shí)現(xiàn)公歷日歷。詳見類定義。
總結(jié)
以上是生活随笔為你收集整理的Java语言中提供了三个日期类_Java语言学习(5)-Java中基础封装类(日期、时间类)...的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Mac下使用macdeployqt打包q
- 下一篇: java 读取控制台_Java从控制台读