如何使用Java?8中DateTimeFormatter類型轉(zhuǎn)換日期格式詳解
DateTimeFormatter類將日期格式轉(zhuǎn)換為指定的格式
在Java 8中,可以使用DateTimeFormatter類來將日期格式轉(zhuǎn)換為指定的格式(例如:yyyy-MM-dd HH:mm:ss)。
示例代碼
以下是將日期格式轉(zhuǎn)換為指定格式的示例代碼:
import java.time.LocalDateTime; import java.time.format.DateTimeFormatter; public class DateTimeFormatExample { public static void main(String[] args) { // 獲取當(dāng)前日期和時(shí)間 LocalDateTime dateTime = LocalDateTime.now(); // 定義日期時(shí)間格式 DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"); // 將日期時(shí)間按照指定格式進(jìn)行格式化 String formattedDateTime = dateTime.format(formatter); // 打印格式化后的日期時(shí)間 System.out.println("Formatted DateTime: " + formattedDateTime); } } // 輸出:Formatted DateTime: 2023-07-03 11:11:00
在上述代碼中,首先獲取當(dāng)前的日期和時(shí)間LocalDateTime.now(),然后通過DateTimeFormatter.ofPattern()方法定義日期時(shí)間的格式,參數(shù)為指定的格式字符串("yyyy-MM-dd HH:mm:ss")。接下來,使用format()方法將日期時(shí)間對(duì)象按照指定的格式進(jìn)行格式化,返回一個(gè)格式化后的字符串。最后,打印格式化后的日期時(shí)間。
除了上述的格式字符外,還可以使用其他字符來表示日期時(shí)間的分隔符,例如:-、/、:等。
需要注意的是,DateTimeFormatter是線程安全的,因此可以在多線程環(huán)境下共享和重用同一個(gè)DateTimeFormatter對(duì)象。
將DateTimeFormatter格式化的字符串轉(zhuǎn)類型日期轉(zhuǎn)換成Date類型
可以使用DateTimeFormatter和LocalDateTime相互轉(zhuǎn)換,然后再轉(zhuǎn)換為Date格式。
// 1.將DateTimeFormatter格式化的日期字符串轉(zhuǎn)換為L(zhǎng)ocalDateTime對(duì)象 LocalDateTime localDateTime = LocalDateTime.parse(formattedDateTime, formatter); // 2.將LocalDateTime轉(zhuǎn)換為Instant對(duì)象 Instant instant = localDateTime.atZone(ZoneId.systemDefault()).toInstant(); // 3.將Instant對(duì)象轉(zhuǎn)換為Date對(duì)象 Date date = Date.from(instant); // 輸出:Mon Jul 03 13:42:08 CST 2023
ZoneId.systemDefault()是一個(gè)靜態(tài)方法,用于獲取系統(tǒng)默認(rèn)的時(shí)區(qū)。
atZone()方法接受一個(gè)ZoneId參數(shù),用于指定時(shí)區(qū)。它將LocalDateTime對(duì)象與指定的時(shí)區(qū)進(jìn)行關(guān)聯(lián),并返回一個(gè)在該時(shí)區(qū)下的ZonedDateTime對(duì)象。
Date.from()方法是將Instant對(duì)象轉(zhuǎn)換為Date對(duì)象的靜態(tài)方法。
請(qǐng)注意,java.time包中的類型(如LocalDateTime)是不可變類型,而java.util.Date是可變類型。因此,在使用過程中要注意確保線程安全性。如果需要頻繁轉(zhuǎn)換日期時(shí)間類型,建議在整個(gè)應(yīng)用程序中使用java.time包。
以上就是如何使用Java 8中DateTimeFormatter類詳解的詳細(xì)內(nèi)容,更多關(guān)于Java8 DateTimeFormatter類的資料請(qǐng)關(guān)注腳本之家其它相關(guān)文章!
- java用LocalDateTime類獲取當(dāng)天時(shí)間、前一天時(shí)間及本周/本月的開始和結(jié)束時(shí)間
- Java中@DateTimeFormat @JsonFormat失效原因及測(cè)試填坑
- Java關(guān)于后端怎么去接收Date、LocalDateTime類型的參數(shù)詳解
- Java8中對(duì)于LocalDateTime的序列化和反序列化問題
- Java8中的LocalDateTime你會(huì)使用了嗎
- java Date獲取年月日時(shí)分秒的實(shí)現(xiàn)方法
- java整數(shù)(秒數(shù))轉(zhuǎn)換為時(shí)分秒格式的示例
- Java輸出系統(tǒng)當(dāng)前的日期(年月日時(shí)分秒毫秒)
- Java里得到00:00:00格式的時(shí)分秒的Timestamp
- java datetime數(shù)據(jù)類型去掉時(shí)分秒的案例詳解
相關(guān)文章
如何利用Java獲取當(dāng)天的開始和結(jié)束時(shí)間
這篇文章主要介紹了如何使用Java?8的LocalDate和LocalDateTime類獲取指定日期的開始和結(jié)束時(shí)間,展示了如何通過這些類進(jìn)行日期和時(shí)間的處理,從而簡(jiǎn)化了日期時(shí)間操作,需要的朋友可以參考下2025-02-02springMVC的RequestMapping請(qǐng)求不到路徑的解決
這篇文章主要介紹了springMVC的RequestMapping請(qǐng)求不到路徑的解決,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2021-08-08Ubuntu 15下安裝Eclipse經(jīng)驗(yàn)分享
這篇文章主要為大家分享了Ubuntu 15下安裝Eclipse經(jīng)驗(yàn),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2016-12-12玩轉(zhuǎn)SpringBoot中的那些連接池(小結(jié))
這篇文章主要介紹了玩轉(zhuǎn)SpringBoot中的那些連接池(小結(jié)),文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2020-12-12Springboot 如何實(shí)現(xiàn)filter攔截token驗(yàn)證和跨域
這篇文章主要介紹了Springboot 如何實(shí)現(xiàn)filter攔截token驗(yàn)證和跨域操作,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2021-08-08springboot如何通過注解實(shí)現(xiàn)多線程
在Spring Boot中實(shí)現(xiàn)異步方法時(shí),如果直接在調(diào)用類中使用`@Async`注解,可能會(huì)導(dǎo)致異步失敗,正確的做法是將實(shí)現(xiàn)異步的方法放在一個(gè)獨(dú)立的類中,并通過Spring生成的bean來調(diào)用這個(gè)方法,這樣可以成功實(shí)現(xiàn)異步2024-12-12