Java8日期時間類LocalDateTime比較大小舉例
前言
LocalDateTime是Java 8中的一個日期時間類,它繼承自LocalDate和LocalTime,可以表示一個不含時區(qū)信息的日期時間對象。通過LocalDateTime可以方便地進(jìn)行日期時間計算、格式化等操作
1、equals()方法
LocalDateTime localDateTime1 = LocalDateTime.of(2023, 12, 24, 8, 30, 0); LocalDateTime localDateTime2 = LocalDateTime.of(2023, 12, 24, 8, 30, 0); // 返回 true boolean result = localDateTime1.equals(localDateTime2);
2、compareTo()方法
LocalDateTime localDateTime1 = LocalDateTime.of(2023, 12, 24, 8, 30, 0); LocalDateTime localDateTime2 = LocalDateTime.of(2023, 12, 24, 8, 40, 0); // 返回 -1 int result = localDateTime1.compareTo(localDateTime2);
3、isBefore()方法
/** * LocalDateTime的isBefore()方法用于判斷一個LocalDateTime是否在另一個LocalDateTime之前。 * 如果當(dāng)前對象在另一個對象之前,返回true;否則返回false。 */ LocalDateTime localDateTime1 = LocalDateTime.of(2023, 12, 24, 8, 30, 0); LocalDateTime localDateTime2 = LocalDateTime.of(2023, 12, 24, 8, 40, 0); // 返回 true boolean result = localDateTime1.isBefore(localDateTime2);
4、isAfter()方法
/** * LocalDateTime的isAfter()方法用于判斷一個LocalDateTime是否在另一個LocalDateTime之后。 * 如果當(dāng)前對象在另一個對象之后,返回true;否則返回false。 */ LocalDateTime localDateTime1 = LocalDateTime.of(2023, 12, 24, 8, 30, 0); LocalDateTime localDateTime2 = LocalDateTime.of(2023, 12, 24, 8, 40, 0); // 返回 false boolean result = localDateTime1.isAfter(localDateTime2);
需要注意的是,當(dāng)使用compareTo()方法比較兩個LocalDateTime對象時,如果兩個對象的日期時間值相同,但是它們的時區(qū)信息不同,仍然會返回0。因此在進(jìn)行日期時間比較時,需要確保兩個LocalDateTime對象的時區(qū)信息相同。
附:LocalDateTime 轉(zhuǎn) Date
LocalDateTime
不包括時區(qū),而Date
代表一個具體的時間瞬間,精度為毫秒。
為了從LocalDateTime
轉(zhuǎn)換到Date
,我們需要提供時區(qū)。
LocalDateTime + Time-Zone = Date
我們可以用以下方法將LocalDateTime
轉(zhuǎn)換為Date
。
1.用 LocalDateTime.atZone()
: 它把這個日期時間和一個給定的時區(qū)結(jié)合起來,創(chuàng)建一個ZonedDateTime
。然后這個ZonedDateTime
可以被轉(zhuǎn)換為Instant。Date.from()
方法接受Instant
并返回相等的Date
實例。
LocalDateTime localDateTime = LocalDateTime.parse("2019-11-15T13:15:30"); Instant instant = localDateTime.atZone(ZoneId.systemDefault()).toInstant(); Date date = Date.from(instant); System.out.println(date);
2.用 LocalDateTime.toInstant()
: 它將這個本地的日期時間和指定的偏移量結(jié)合起來,形成Instant
。
instant = localDateTime.toInstant(ZoneOffset.UTC); date = Date.from(instant); System.out.println(date);
3.用 Timestamp.valueOf()
: 它將一個JDBC
時間戳轉(zhuǎn)義格式的字符串對象轉(zhuǎn)換為一個Timestamp
值。給定的字符串日期應(yīng)該是yyyy-MM-dd HH:mm:ss
格式。
instant = Timestamp.valueOf(localDateTime.format(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))).toInstant(); date = Date.from(instant); System.out.println(date);
為了創(chuàng)建Date
實例,我們也使用Date
構(gòu)造函數(shù)來傳遞時間,單位為毫秒。
Timestamp timestamp = Timestamp.valueOf(localDateTime.format(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))); date = new Date(timestamp.getTime()); System.out.println(date);
總結(jié)
到此這篇關(guān)于Java8日期時間類LocalDateTime比較大小的文章就介紹到這了,更多相關(guān)Java LocalDateTime比較大小內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
SpringBoot集成Spring Data JPA及讀寫分離
這篇文章主要介紹了SpringBoot集成Spring Data JPA及讀寫分離的相關(guān)知識,需要的朋友可以參考下2017-04-04java ant包中的org.apache.tools.zip實現(xiàn)壓縮和解壓縮實例詳解
這篇文章主要介紹了java ant包中的org.apache.tools.zip實現(xiàn)壓縮和解壓縮實例詳解的相關(guān)資料,需要的朋友可以參考下2017-04-04Java微信公眾平臺開發(fā)(15) 微信JSSDK的使用
這篇文章主要為大家詳細(xì)介紹了Java微信公眾平臺開發(fā)第十五步,微信JSSDK的使用方法,具有一定的參考價值,感興趣的小伙伴們可以參考一下2017-04-04SpringBoot2之PUT請求接收不了參數(shù)的解決方案
這篇文章主要介紹了SpringBoot2之PUT請求接收不了參數(shù)的解決方案,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2022-07-07Spring Security之LogoutSuccessHandler注銷成功操作方式
這篇文章主要介紹了Spring Security之LogoutSuccessHandler注銷成功操作方式,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教2024-08-08