Java8日期時(shí)間類LocalDateTime比較大小舉例
前言
LocalDateTime是Java 8中的一個(gè)日期時(shí)間類,它繼承自LocalDate和LocalTime,可以表示一個(gè)不含時(shí)區(qū)信息的日期時(shí)間對(duì)象。通過(guò)LocalDateTime可以方便地進(jìn)行日期時(shí)間計(jì)算、格式化等操作
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()方法用于判斷一個(gè)LocalDateTime是否在另一個(gè)LocalDateTime之前。 * 如果當(dāng)前對(duì)象在另一個(gè)對(duì)象之前,返回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()方法用于判斷一個(gè)LocalDateTime是否在另一個(gè)LocalDateTime之后。 * 如果當(dāng)前對(duì)象在另一個(gè)對(duì)象之后,返回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()方法比較兩個(gè)LocalDateTime對(duì)象時(shí),如果兩個(gè)對(duì)象的日期時(shí)間值相同,但是它們的時(shí)區(qū)信息不同,仍然會(huì)返回0。因此在進(jìn)行日期時(shí)間比較時(shí),需要確保兩個(gè)LocalDateTime對(duì)象的時(shí)區(qū)信息相同。
附:LocalDateTime 轉(zhuǎn) Date
LocalDateTime不包括時(shí)區(qū),而Date代表一個(gè)具體的時(shí)間瞬間,精度為毫秒。
為了從LocalDateTime轉(zhuǎn)換到Date,我們需要提供時(shí)區(qū)。
LocalDateTime + Time-Zone = Date
我們可以用以下方法將LocalDateTime轉(zhuǎn)換為Date。
1.用 LocalDateTime.atZone(): 它把這個(gè)日期時(shí)間和一個(gè)給定的時(shí)區(qū)結(jié)合起來(lái),創(chuàng)建一個(gè)ZonedDateTime。然后這個(gè)ZonedDateTime可以被轉(zhuǎn)換為Instant。Date.from()方法接受Instant并返回相等的Date實(shí)例。
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(): 它將這個(gè)本地的日期時(shí)間和指定的偏移量結(jié)合起來(lái),形成Instant。
instant = localDateTime.toInstant(ZoneOffset.UTC); date = Date.from(instant); System.out.println(date);
3.用 Timestamp.valueOf(): 它將一個(gè)JDBC時(shí)間戳轉(zhuǎn)義格式的字符串對(duì)象轉(zhuǎn)換為一個(gè)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實(shí)例,我們也使用Date構(gòu)造函數(shù)來(lái)傳遞時(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日期時(shí)間類LocalDateTime比較大小的文章就介紹到這了,更多相關(guān)Java LocalDateTime比較大小內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Java使用Tesseract-OCR實(shí)戰(zhàn)教程
本文介紹了如何在Java中使用Tesseract-OCR進(jìn)行文本提取,包括Tesseract-OCR的安裝、中文訓(xùn)練庫(kù)的配置、依賴庫(kù)的引入以及具體的代碼實(shí)現(xiàn),通過(guò)這個(gè)過(guò)程,我們將演示如何從視頻幀中提取文本2025-02-02
Java SpringBoot集成ChatGPT實(shí)現(xiàn)AI聊天
ChatGPT已經(jīng)組件放開(kāi)了,現(xiàn)在都可以基于它寫插件了,也許可以用它結(jié)合文字語(yǔ)音開(kāi)發(fā)一個(gè)老人小孩需要的智能的說(shuō)話陪伴啥的,這篇文章就介紹SpringBoot結(jié)合ChatGPT實(shí)現(xiàn)AI聊天感興趣的同學(xué)可以借鑒一下2023-04-04
java Struts2框架下實(shí)現(xiàn)文件上傳功能
這篇文章主要為大家詳細(xì)介紹了java Struts2框架下實(shí)現(xiàn)文件上傳功能,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2016-10-10
Java使用Aspose.PDF for Java實(shí)現(xiàn)PDF轉(zhuǎn)Word無(wú)水印無(wú)頁(yè)數(shù)限制
文章介紹了Aspose.PDF for Java組件及其功能,包括插入表格、圖形、圖像等,支持從XML模板創(chuàng)建PDF文檔,具有出色的轉(zhuǎn)換質(zhì)量和安全功能,文章還詳細(xì)描述了Maven依賴配置、License授權(quán)方式、核心轉(zhuǎn)換代碼集成和成本分析,最后給出了在不同階段推薦的授權(quán)方案2026-04-04
spring如何通過(guò)FactoryBean配置Bean
這篇文章主要介紹了spring如何通過(guò)FactoryBean配置Bean,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2020-01-01

