java中的日期和時(shí)間比較大小
日期和時(shí)間比較大小
java中日期如何比較大小
SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd"); //設(shè)置日期格式 Date begin = fmt.parse("2017-07-30"); //開(kāi)始日期 Date end = fmt.parse("2017-08-30"); //結(jié)束日期 try { Date bt=df.parse(begin ); Date et=df.parse(end ); if (bt.before(et)){ bt日期小于et日期 } if (bt.after(et)){ bt日期大于et日期 } } catch (ParseException e) { e.printStackTrace(); }
java中時(shí)間如何比較大小
public static void main(String[] args) throws ParseException { String time = "2019-6-02 11:06:51"; String time1 = "2019-6-02 11:05:51"; SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); Date d1 = format.parse(time); Date d2 = format.parse(time1); //前者大于后者 返回大于0的數(shù)字反之小于0的數(shù)字,等于返回0 System.out.println(d1.compareTo(d2)); }
比較兩個(gè)日期時(shí)間,比較兩個(gè)日期大小
我們經(jīng)常會(huì)遇到一個(gè)問(wèn)題,需要比較兩個(gè)時(shí)間的大小,或者需要判斷一個(gè)時(shí)間在另一個(gè)時(shí)間之前,或者一個(gè)時(shí)間在另一個(gè)時(shí)間之后,比較日期時(shí)間的大小,還要精確到秒,這個(gè)時(shí)候經(jīng)常會(huì)有一些人卡住。
這個(gè)時(shí)候我們來(lái)講解一下java8的新日期時(shí)間類。
LocalDateTime
可以很好的解決日期比較大小的問(wèn)題,而且是線程安全的,精確到秒
不說(shuō)廢話直接上代碼
看不懂的可以直接復(fù)制使用 只需要傳2個(gè)需要比較的日期時(shí)間即可
但是必須需要jdk8版本 因?yàn)檫@個(gè)是java8的日期時(shí)間處理類
public boolean verifyDate(Date begin,Date end){ ZoneId zoneId = ZoneId.systemDefault(); LocalDateTime beginDate = LocalDateTime.ofInstant(begin.toInstant(), zoneId); LocalDateTime endDate = LocalDateTime.ofInstant(end.toInstant(), zoneId); return beginDate.isBefore(endDate); }
比較begin的時(shí)間是否在end之前 看不懂的可以直接復(fù)制上面代碼 使用 精確到秒
- begin < end 返回true
- begin > end 返回false
- begin = end 返回false
主要是使用LocalDateTime有一種比較的方法
isBefore(LocalDateTime )
:可判斷當(dāng)前的localdatetime時(shí)間在參數(shù)的localdatetime之后isAfter(LocalDateTime)
:可判斷當(dāng)前的localdatetime時(shí)間在參數(shù)的localdatetime之前
如:
isBefore()
a.isBefore(b)
- a < b 返回true
- a = b 返回false
- a > b 返回false
isAfter()
a.isAfter(b)
- a < b 返回false
- a = b 返回false
- a > b 返回true
DateTimeFormatter
DateTimeFormatter這個(gè)相當(dāng)于simpledateformatter的日期安全類
他提供了更強(qiáng)大的api
以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
分布式面試消息隊(duì)列解決消息重復(fù)保證消息順序
這篇文章主要介紹了分布式面試問(wèn)題:分布式消息隊(duì)列如何解決消息重復(fù)并保證消息順序面試問(wèn)題解答,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步2022-03-03JDBC用IDEA連接SQLServer數(shù)據(jù)庫(kù)的超實(shí)用教程
JDBC是Java連接數(shù)據(jù)庫(kù)的一種接口,它由各個(gè)數(shù)據(jù)庫(kù)廠商為開(kāi)發(fā)者提供的接口,要使用它需要到相應(yīng)廠商下載對(duì)應(yīng)的jar包,下面這篇文章主要給大家介紹了關(guān)于JDBC用IDEA連接SQLServer數(shù)據(jù)庫(kù)的超實(shí)用教程,需要的朋友可以參考下2023-05-05關(guān)于@Autowired注入依賴失敗的問(wèn)題及解決
這篇文章主要介紹了關(guān)于@Autowired注入依賴失敗的問(wèn)題及解決方案,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2022-08-08Java日常練習(xí)題,每天進(jìn)步一點(diǎn)點(diǎn)(62)
下面小編就為大家?guī)?lái)一篇Java基礎(chǔ)的幾道練習(xí)題(分享)。小編覺(jué)得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧,希望可以幫到你2021-08-08SpringAop切入點(diǎn)execution表達(dá)式的深入講解
Spring AOP 可能會(huì)經(jīng)常使用 execution切入點(diǎn)指示符,下面這篇文章主要給大家介紹了關(guān)于SpringAop切入點(diǎn)execution表達(dá)式的相關(guān)資料,需要的朋友可以參考下2021-08-08Windows10系統(tǒng)下JDK1.8的下載安裝及環(huán)境變量配置的教程
這篇文章主要介紹了Windows10系統(tǒng)下JDK1.8的下載安裝及環(huán)境變量配置的教程,本文圖文并茂給大家介紹的非常詳細(xì),對(duì)大家的工作或?qū)W習(xí)具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2020-03-03淺談springMVC攔截器和過(guò)濾器總結(jié)
本篇文章主要介紹了springMVC攔截器和過(guò)濾器總結(jié),可以用來(lái)對(duì)訪問(wèn)的url進(jìn)行攔截處理,有興趣的可以了解一下。2017-01-01SpringBoot多數(shù)據(jù)源的兩種實(shí)現(xiàn)方式實(shí)例
最近在項(xiàng)目開(kāi)發(fā)中,需要為一個(gè)使用MySQL數(shù)據(jù)庫(kù)的SpringBoot項(xiàng)目,新添加一個(gè)PLSQL數(shù)據(jù)庫(kù)數(shù)據(jù)源,下面這篇文章主要給大家介紹了關(guān)于SpringBoot多數(shù)據(jù)源的兩種實(shí)現(xiàn)方式,需要的朋友可以參考下2022-04-04