Java中Date時(shí)間類的使用方法舉例
一、java.util.Date實(shí)例化介紹
一)、Date對(duì)象實(shí)例化
//使用無(wú)參構(gòu)造器 Date date1 = new Date(); System.out.println(date1); //使用有參構(gòu)造器,參數(shù)為long類型的時(shí)間戳,將時(shí)間戳自動(dòng)轉(zhuǎn)為時(shí)間對(duì)象 Date date2 = new Date(60000); System.out.println(date2);
運(yùn)行結(jié)果:

Date 類的無(wú)參數(shù)構(gòu)造方法獲取的是系統(tǒng)當(dāng)前的時(shí)間,顯示的順序?yàn)樾瞧?、月、日、小時(shí)、分、秒、年。
Date 類帶 long 類型參數(shù)的構(gòu)造方法獲取的是距離 GMT 指定毫秒數(shù)的時(shí)間, 60000 毫秒是一分鐘,而 GMT(格林尼治標(biāo)準(zhǔn)時(shí)間)與 CST (中央標(biāo)準(zhǔn)時(shí)間)相差 8 小時(shí),也就是說(shuō) 1970 年 1 月 1 日 00:00:00 GMT 與 1970 年 1 月 1 日 08:00:00 CST 表示的是同一時(shí)間。 因此距離 1970 年 1 月 1 日 00:00:00 CST 一 分鐘的時(shí)間為 1970 年 1 月 1 日 00:01:00 CST ,即使用 Date 對(duì)象表示為 Thu Jan 01 08:01:00 CST 1970 。
二)設(shè)置Date對(duì)象指定日期 :
1、實(shí)例化對(duì)象時(shí)設(shè)置時(shí)間:
要想在實(shí)例化Date對(duì)象時(shí)直接告訴Date對(duì)象特定的時(shí)間,也就是說(shuō)讓Date對(duì)象指向自己設(shè)定定的時(shí)間而非系統(tǒng)當(dāng)前時(shí)間。
直接寫入年份和月份是得不到想要的結(jié)果的。因?yàn)閖ava中Date是從1900年開始算的,所以第一個(gè)參數(shù)要填入你想要的年份后要減去1900,月需要減1,日可以直接插入。時(shí)分秒也可以直接插入。
如果我們想要添加的時(shí)間需要精確到年月日時(shí)分秒,按順序依次按規(guī)則輸入即可。如果只需精確到年月日時(shí)分秒三個(gè)參數(shù)可以不填,系統(tǒng)默認(rèn)時(shí)分秒為00:00:00。 代碼演示:
//使用有參構(gòu)造器實(shí)例化對(duì)象 Date date4 = new Date(2023 - 1900, 6 - 1, 5, 6, 2, 4); Date date5 = new Date(2023-1900, 6 - 1, 5); System.out.println(date4); System.out.println(date5);
運(yùn)行結(jié)果展示:

以上兩種是傳入?yún)?shù),我們還可以用時(shí)間字符串來(lái)進(jìn)行設(shè)置Date對(duì)象的時(shí)間值
1)使用特定的格式進(jìn)行實(shí)例化并指定時(shí)間:
在使用此方法時(shí)必須按照“年/月/日 時(shí):分:秒”此種順序和格式,例如:
Date date1= new Date("2023/6/16 11:40:00");
System.out.println(date1);運(yùn)行結(jié)果展示:

2、使用格式化工具進(jìn)行時(shí)間Date時(shí)間設(shè)置
Date date1= new Date();
Date date2= new Date();
//聲名兩個(gè)格式化工具,并且設(shè)置格式化字符串格式
SimpleDateFormat sdf1 = new SimpleDateFormat("yyyy年MM月dd日 HH時(shí)mm分ss秒");
SimpleDateFormat sdf2 = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
//因?yàn)樵诟袷交瘯r(shí),如果不按照指定格式進(jìn)行輸入無(wú)法進(jìn)行格式化會(huì)出現(xiàn)異常,所以用try-catch處理異常
try {
date1 = sdf1.parse("2023年06月16日 19:17:00");
date2 = sdf2.parse("2023-06-16 19:17:00");
}catch (Exception ignored){}
System.out.println(date1);
System.out.println(date2);運(yùn)行結(jié)果展示:

三)將日期格式化輸出為中文狀態(tài)
以上輸出均為英文狀態(tài)下的,當(dāng)然我們可以是用日期格式話使輸出為中文狀態(tài),例:
Date date = new Date();
//格式化輸出
System.out.printf("%tF %<tT",date);輸出結(jié)果展示:

二、方法介紹
方法 | 描述 |
boolean after(Date when) | 判斷此日期是否在指定日期之后 |
boolean before(Date when) | 判斷此日期是否在指定日期之前 |
int compareTo(Date anotherDate) | 比較兩個(gè)日期的順序(返回值為-1代表日期從小到大,返回值為1代表日期從大到?。?/p> |
boolean equals(Object obj) | 比較兩個(gè)日期的相等性 |
long getTime() | 返回自 1970 年 1 月 1 日 00:00:00 GMT 以來(lái),此 Date 對(duì)象表示的毫秒數(shù) |
String toString() | 把此 Date 對(duì)象轉(zhuǎn)換為以下形式的 String: dow mon dd hh:mm:ss zzz yyyy 。 其 中 dow 是一周中的某一天 (Sun 、 Mon 、 Tue 、 Wed 、 Thu 、 Fri 及 Sat) |
三、方法演示
1、boolean after(Date when)方法,判斷此日期是否在指定日期之后:
//從格林尼治時(shí)間1970年1月1日 00:00:00開始往后推60000毫秒 Date date2 = new Date(60000); System.out.println(date2); //System.currentTimeMillis()獲得當(dāng)前系統(tǒng)時(shí)間戳 Date date3 = new Date(System.currentTimeMillis()); System.out.println(date3); ystem.out.println(date2.after(date3));
運(yùn)行結(jié)果:

2、 boolean before(Date when)方法,判斷此日期是否在指定日期之前:
Date date2 = new Date(60000); System.out.println(date2); //(System.currentTimeMillis()獲得當(dāng)前系統(tǒng)時(shí)間戳 Date date3 = new Date(System.currentTimeMillis()); System.out.println(date3); System.out.println(date2.before(date3));
運(yùn)行結(jié)果:

3、int compareTo(Date anotherDate)方法,比較兩個(gè)日期的順序(返回值為-1代表日期從小到大,返回值為1代表日期從大到?。?/p>
Date date2 = new Date(60000); System.out.println(date2); //(System.currentTimeMillis()獲得當(dāng)前系統(tǒng)時(shí)間戳 Date date3 = new Date(System.currentTimeMillis()); System.out.println(date3); System.out.println(date2.compareTo(date3));
運(yùn)行結(jié)果:

4、boolean equals(Object obj)方法,比較兩個(gè)日期的相等性:
Date date2 = new Date(60000); System.out.println(date2); //(System.currentTimeMillis()獲得當(dāng)前系統(tǒng)時(shí)間戳 Date date3 = new Date(System.currentTimeMillis()); System.out.println(date3); System.out.println(date2.equals(date3));
注:時(shí)間戳是從1970年1月1日開始累計(jì)到指定時(shí)間的毫秒數(shù)
運(yùn)行結(jié)果:

5、long getTime()方法,如果Date對(duì)象沒(méi)有指定時(shí)間則返回自 1970 年 1 月 1 日 00:00:00 GMT 以來(lái)此 Date 對(duì)象表示的毫秒數(shù),如果Date對(duì)象指定時(shí)間則返回指定時(shí)間的時(shí)間戳(從1970年1月1日開始累計(jì)到指定時(shí)間的毫秒數(shù)):
//(System.currentTimeMillis()獲得當(dāng)前系統(tǒng)時(shí)間戳
Date date3 = new Date(System.currentTimeMillis());
Date date6 = new Date("2023/6/16 11:40:00");
System.out.println(date3.toString());
System.out.println(date6.getTime());運(yùn)行結(jié)果:

6、String toString()方法,把此 Date 對(duì)象轉(zhuǎn)換為以下形式的 String: dow mon dd hh:mm:ss zzz yyyy。 其 中 dow 是一周中的某一天(Sun、Mon、Tue、Wed、Thu、Fri 及 Sat):
//(System.currentTimeMillis()獲得當(dāng)前系統(tǒng)時(shí)間戳 Date date3 = new Date(System.currentTimeMillis()); System.out.println(date3); System.out.println(date3.toString());
運(yùn)行結(jié)果:

此方法和直接輸出Date對(duì)象的結(jié)果沒(méi)有任何差異,因此在使用時(shí)我們很少使用。
總結(jié)
到此這篇關(guān)于Java中Date時(shí)間類的使用方法的文章就介紹到這了,更多相關(guān)Java Date時(shí)間類使用內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
MybatisPlus 主鍵策略之type=IdType.ASSIGN_ID等詳解
雪花算法(雪花)是微博開源的分布式ID生成算法其核心思想就是:使用一個(gè)64位的長(zhǎng)型的數(shù)字作為全局唯一ID,這篇文章主要介紹了MybatisPlus 主鍵策略(type=IdType.ASSIGN_ID等詳解),需要的朋友可以參考下2024-04-04
SpringBoot+MyBatis-Plus實(shí)現(xiàn)分頁(yè)的項(xiàng)目實(shí)踐
MyBatis-Plus是基于MyBatis的持久層增強(qiáng)工具,提供簡(jiǎn)化CRUD、代碼生成器、條件構(gòu)造器、分頁(yè)及樂(lè)觀鎖等功能,極大簡(jiǎn)化了開發(fā)工作量并提高了開發(fā)效率,本文就來(lái)介紹一下SpringBoot+MyBatis-Plus實(shí)現(xiàn)分頁(yè)的項(xiàng)目實(shí)踐,感興趣的可以了解一下2024-11-11
java獲取ip地址與網(wǎng)絡(luò)接口的方法示例
這篇文章主要給大家介紹了關(guān)于利用java如何獲取ip地址與網(wǎng)絡(luò)接口的相關(guān)資料,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧。2018-01-01
SpringBoot配置SSL同時(shí)支持http和https訪問(wèn)實(shí)現(xiàn)
本文主要介紹了SpringBoot配置SSL同時(shí)支持http和https訪問(wèn)實(shí)現(xiàn),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2022-07-07
SpringBoot應(yīng)用監(jiān)控帶郵件警報(bào)的實(shí)現(xiàn)示例
本文主要介紹了SpringBoot應(yīng)用監(jiān)控帶郵件警報(bào)的實(shí)現(xiàn)示例,文中通過(guò)示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2022-02-02
淺析Java中對(duì)象的創(chuàng)建與對(duì)象的數(shù)據(jù)類型轉(zhuǎn)換
這篇文章主要介紹了Java中對(duì)象的創(chuàng)建與對(duì)象的數(shù)據(jù)類型轉(zhuǎn)換,是Java入門學(xué)習(xí)中的基礎(chǔ)知識(shí),需要的朋友可以參考下2016-01-01
java實(shí)現(xiàn)上傳圖片并壓縮圖片大小功能
這篇文章主要為大家詳細(xì)介紹了java實(shí)現(xiàn)上傳圖片并壓縮圖片大小功能,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2017-05-05
SpringBoot日志配置SLF4J和Logback的方法實(shí)現(xiàn)
日志記錄是不可或缺的一部分,本文主要介紹了SpringBoot日志配置SLF4J和Logback的方法實(shí)現(xiàn),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2025-04-04

