java中的日期和時間比較大小
日期和時間比較大小
java中日期如何比較大小
SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd"); //設置日期格式 Date begin = fmt.parse("2017-07-30"); //開始日期 Date end = fmt.parse("2017-08-30"); //結束日期 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中時間如何比較大小
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的數字反之小于0的數字,等于返回0 System.out.println(d1.compareTo(d2)); }
比較兩個日期時間,比較兩個日期大小
我們經常會遇到一個問題,需要比較兩個時間的大小,或者需要判斷一個時間在另一個時間之前,或者一個時間在另一個時間之后,比較日期時間的大小,還要精確到秒,這個時候經常會有一些人卡住。
這個時候我們來講解一下java8的新日期時間類。
LocalDateTime
可以很好的解決日期比較大小的問題,而且是線程安全的,精確到秒
不說廢話直接上代碼
看不懂的可以直接復制使用 只需要傳2個需要比較的日期時間即可
但是必須需要jdk8版本 因為這個是java8的日期時間處理類
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的時間是否在end之前 看不懂的可以直接復制上面代碼 使用 精確到秒
- begin < end 返回true
- begin > end 返回false
- begin = end 返回false
主要是使用LocalDateTime有一種比較的方法
isBefore(LocalDateTime )
:可判斷當前的localdatetime時間在參數的localdatetime之后isAfter(LocalDateTime)
:可判斷當前的localdatetime時間在參數的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這個相當于simpledateformatter的日期安全類
他提供了更強大的api
以上為個人經驗,希望能給大家一個參考,也希望大家多多支持腳本之家。
相關文章
Windows10系統(tǒng)下JDK1.8的下載安裝及環(huán)境變量配置的教程
這篇文章主要介紹了Windows10系統(tǒng)下JDK1.8的下載安裝及環(huán)境變量配置的教程,本文圖文并茂給大家介紹的非常詳細,對大家的工作或學習具有一定的參考借鑒價值,需要的朋友可以參考下2020-03-03