Java日期比較大小的3種方式示例詳解
一、字符串String的日期比較
String型的日期通過(guò)compareTo()來(lái)比較,因?yàn)镾tring實(shí)現(xiàn)了comparable接口
- endDate.compareTo(startDate) 結(jié)果>0 說(shuō)明前者 晚于 后者
String型日期(獲取今天/系統(tǒng)當(dāng)前時(shí)間)
獲取今天當(dāng)前時(shí)間,精確到 秒
String today= new SimpleDateFormat("yyyy-MM-dd hh:mm:ss").format(new Date());如果獲取當(dāng)前時(shí)間要 精確到毫秒 的話(huà),僅需要String today= new SimpleDateFormat("yyyy-MM-dd hh:mm:ss:SSS").format(new Date());即可比較示例
String startDate="2020-11-13 00:00:00";
//當(dāng)前時(shí)間endDate 是2020-11-14 09:52:41
String endDate= new SimpleDateFormat("yyyy-MM-dd hh:mm:ss").format(new Date());
// return 1
System.out.println(endDate.compareTo(startDate));返回結(jié)果是1,即 endDate>startDate
String日期比較要注意
- 比較的字符串格式要一致,yyyy-MM-dd hh:mm:ss 和 yyyyMMddhhmmss 格式是不一樣的,這么比較結(jié)果肯定不對(duì)
二、數(shù)值型long比較
獲取long型的今日/系統(tǒng)當(dāng)前時(shí)間
數(shù)值型(long型)日期的獲取方式主要有2個(gè):
- long time=System.currentTimeMillis() 獲取系統(tǒng)當(dāng)前時(shí)間,精確到毫秒
- long today= Date.getTime(),即通過(guò)Date型日期調(diào)用getTime()方法獲取,精確到毫秒
如果只需要精確到秒的話(huà),大可用別的比較方式
String startDate="2020-11-13 00:00:00";
String endDate= "2020-11-14 23:59:59";
SimpleDateFormat simpleDateFormat=new SimpleDateFormat("yyyy-MM-dd hh:mm:ss");
try{
Date date01=simpleDateFormat.parse(startDate);
Date date02=simpleDateFormat.parse(endDate);
// 精確到毫秒
long milliSecond01=date01.getTime();
long milliSecond02=date02.getTime();
// true
System.out.println(milliSecond02 > milliSecond01);
}catch (Exception e){
}三、日期型Date直接比較
日期型Date的比較通過(guò)before()和after()來(lái)完成,返回值均為boolean
- before(Date when) :在指定日期when 之前
- after(Date when) :在指定日期when 之后
String startDate="2020-11-13 00:00:00";
String endDate= "2020-11-14 23:59:59";
SimpleDateFormat simpleDateFormat=new SimpleDateFormat("yyyy-MM-dd hh:mm:ss");
try{
Date date01=simpleDateFormat.parse(startDate);
Date date02=simpleDateFormat.parse(endDate);
// true , 11-13號(hào) 在 11-14號(hào) 之前
System.out.println(date01.before(date02));
}catch (Exception e){
}四、Date型日期的獲取方式
1、Date date=new Date()
2、Calendar獲取Date日期
//獲取日歷實(shí)例 Calendar calendar=Calendar.getInstance(); Date date=calendar.getTime();
返回的Date日期精確到了 毫秒
五、Calendar獲取年月日【拓展】
Calendar calendar=Calendar.getInstance();
int year=calendar.get(Calendar.YEAR);
int month=calendar.get(Calendar.MONTH)+1;
int day=calendar.get(Calendar.DATE);
int hour=calendar.get(Calendar.HOUR_OF_DAY);
int minute=calendar.get(Calendar.MINUTE);
int second=calendar.get(Calendar.SECOND);
System.out.println("當(dāng)前時(shí)間:"+year+"年 "+month+"月 "+day+"日 "+hour+"時(shí) "+minute+"分 "+second+"秒");calendar.get(Calendar.MONTH)拿到的是上一個(gè)月,要拿到這個(gè)月得+1

到此這篇關(guān)于Java日期比較大小的3種方式示例詳解的文章就介紹到這了,更多相關(guān)Java日期比較大小內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Springboot讀取templates文件html代碼實(shí)例
這篇文章主要介紹了Springboot讀取templates文件html代碼實(shí)例,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2020-04-04
Maven發(fā)布項(xiàng)目 (jar包) 到Nexus私服中的操作
這篇文章主要介紹了Maven發(fā)布項(xiàng)目 (jar包) 到Nexus私服中的操作,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2020-10-10
Java實(shí)現(xiàn)將數(shù)字日期翻譯成英文單詞的工具類(lèi)實(shí)例
這篇文章主要介紹了Java實(shí)現(xiàn)將數(shù)字日期翻譯成英文單詞的工具類(lèi),結(jié)合完整實(shí)例形式分析了Java日期轉(zhuǎn)換與字符串操作相關(guān)實(shí)現(xiàn)技巧,需要的朋友可以參考下2017-09-09
Java開(kāi)發(fā)工具IntelliJ IDEA安裝圖解
這篇文章主要介紹了Java開(kāi)發(fā)工具IntelliJ IDEA安裝圖解,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2019-11-11
idea中文件被Mark as Plain Text后恢復(fù)方式
在IntelliJ IDEA中,如果錯(cuò)誤地將文件標(biāo)記為純文本(Mark as Plain Text),可以通過(guò)在項(xiàng)目目錄中右鍵點(diǎn)擊文件并選擇“Mark as”來(lái)恢復(fù)原文件類(lèi)型2024-11-11
java中接口和事件監(jiān)聽(tīng)器的深入理解
這篇文章主要給大家介紹了關(guān)于java中接口和事件監(jiān)聽(tīng)器的相關(guān)資料,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家學(xué)習(xí)或者使用java具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2019-12-12
servlet生命周期_動(dòng)力節(jié)點(diǎn)Java學(xué)院整理
這篇文章主要為大家詳細(xì)介紹了servlet生命周期的相關(guān)資料,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2017-07-07

