java日期時(shí)間格式化@JsonFormat與@DateTimeFormat的使用
如果要使用 @JsonFormat 這個(gè)注解的話,需要在項(xiàng)目中添加 jackson 相關(guān)的依賴包;
因?yàn)?@JsonFormat 注解不是 Spring 自帶的注解,所以使用該注解前需要添加 jackson 相關(guān)的依賴包。當(dāng)然,如果是 SpringBoot 項(xiàng)目就不需要自己手動(dòng)添加依賴了,因?yàn)樵?spring-boot-start-web 下已經(jīng)包含了 jackson 相關(guān)依賴。

<!-- https://mvnrepository.com/artifact/com.fasterxml.jackson.core/jackson-databind -->
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-databind</artifactId>
<version>2.12.3</version>
</dependency>
如果要使用 @DateTimeFormat 這個(gè)注解的話,需要在項(xiàng)目中添加 springframework 相關(guān)的依賴包
<!-- https://mvnrepository.com/artifact/org.springframework/spring-context -->
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-context</artifactId>
<version>5.3.9</version>
</dependency>
大家可以去這個(gè)網(wǎng)站搜索想要的依賴:https://mvnrepository.com
@JsonFormat(pattern = “yyyy-MM-dd HH:mm:ss”,timezone = “GMT+8”)
將后端返回給前端的日期時(shí)間進(jìn)行格式化,pattern為轉(zhuǎn)換后的格式,timezone為日期時(shí)間的時(shí)區(qū)默認(rèn)情況下timeZone為GMT(即標(biāo)準(zhǔn)時(shí)區(qū)),而北京是在東八區(qū),所以會(huì)造成差8小時(shí)。
提示:@JsonFormat注解可以在屬性的上方,同樣可以在屬性對(duì)應(yīng)的get方法上,兩種方式?jīng)]有區(qū)別
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8") private LocalDateTime userCreateDate;
@DateTimeFormat(pattern = “yyyy-MM-dd HH:mm:ss”)
將前端傳給后端的日期時(shí)間進(jìn)行格式化,pattern為轉(zhuǎn)換后的格式
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") private LocalDateTime userCreateDate;
POST請(qǐng)求,我們一般會(huì)用@RequestBody接收J(rèn)SON對(duì)象,如果對(duì)象里面有日期時(shí)間類型數(shù)據(jù)的話,我們可以使用 @JsonFormat注解進(jìn)行格式化,它既可以對(duì)出參進(jìn)行格式化,也可以對(duì)入?yún)⑦M(jìn)行格式化
GET請(qǐng)求參數(shù)都是拼接在URL后面的,則需要使用@DateTimeFormat對(duì)入?yún)⑦M(jìn)行格式化,放到@RequestBody修飾的對(duì)象里面是無(wú)效的
@JsonFormat是格式化json格式的。
@DateTimeFormat是格式化 key=value 這種格式的。
需要取數(shù)據(jù)到前臺(tái),也需要前臺(tái)數(shù)據(jù)傳到后臺(tái),都需要進(jìn)行時(shí)間格式的轉(zhuǎn)換,可以同時(shí)使用
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone="GMT+8") private Date symstarttime;

SpringBoot的配置文件
application.yml
spring:
# Content-Type 為 application/json, @JsonFormat(優(yōu)先級(jí)高) 或 spring.jackson.date-format
jackson:
date-format: yyyy-MM-dd HH:mm:ss
time-zone: GMT+8
# Content-Type 為 application/x-www-form-urlencoded(普通表單上傳)spring.mvc.date-format(優(yōu)先級(jí)高) 或 @DatetimeFormat
mvc:
format:
date-time: yyyy-MM-dd HH:mm:ss
application.properties
spring.jackson.date-format=yyyy-MM-dd HH:mm:ss spring.jackson.time-zone=GMT+8 spring.jackson.serialization.indent_output=true spring.jackson.serialization.fail_on_empty_beans=false
到此這篇關(guān)于java日期時(shí)間格式化@JsonFormat與@DateTimeFormat的使用的文章就介紹到這了,更多相關(guān)java @JsonFormat與@DateTimeFormat內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
springboot下添加全局異常處理和自定義異常處理的過(guò)程解析
在spring項(xiàng)目中,優(yōu)雅處理異常,好處是可以將系統(tǒng)產(chǎn)生的全部異常統(tǒng)一捕獲處理,自定義的異常也由全局異常來(lái)捕獲,如果涉及到validator參數(shù)校驗(yàn)器使用全局異常捕獲也是較為方便,這篇文章主要介紹了springboot下添加全局異常處理和自定義異常處理,需要的朋友可以參考下2023-12-12
EL調(diào)用Java方法_動(dòng)力節(jié)點(diǎn)Java學(xué)院整理
簡(jiǎn)單來(lái)說(shuō),我們?cè)谝粋€(gè)類中的某個(gè)方法,可以使用EL進(jìn)行調(diào)用,這個(gè)能被EL表達(dá)式調(diào)用的方法稱之為EL函數(shù),但是這種方式必須滿足兩點(diǎn)要求,具體哪兩點(diǎn),大家可以參考下本文2017-07-07
Java語(yǔ)法糖之個(gè)數(shù)可變的形參的實(shí)現(xiàn)
這篇文章主要介紹了Java語(yǔ)法糖之個(gè)數(shù)可變的形參的實(shí)現(xiàn),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2020-06-06
Java數(shù)據(jù)結(jié)構(gòu)之散列表詳解
散列表(Hash table,也叫哈希表),是根據(jù)關(guān)鍵碼值(Key value)而直接進(jìn)行訪問(wèn)的數(shù)據(jù)結(jié)構(gòu)。本文將為大家具體介紹一下散列表的原理及其代碼實(shí)現(xiàn)2022-01-01
IDEA錯(cuò)誤:找不到或無(wú)法加載主類的完美解決方法
使用IDEA開(kāi)始就一直在搭建java環(huán)境,許久沒(méi)有使用過(guò)java,剛開(kāi)始有些生疏,先建了一個(gè)最簡(jiǎn)單的類可是運(yùn)行的時(shí)候出現(xiàn)錯(cuò)誤:找不到或無(wú)法加載主類,下面這篇文章主要給大家介紹了關(guān)于IDEA錯(cuò)誤:找不到或無(wú)法加載主類的完美解決方法,需要的朋友可以參考下2022-07-07
使用Thrift實(shí)現(xiàn)跨語(yǔ)言RPC的調(diào)用
Thrift最大的優(yōu)勢(shì)就是可以實(shí)現(xiàn)跨語(yǔ)言RPC調(diào)用,尤其在一些大廠,微服務(wù)各模塊之間使用不同的語(yǔ)言是很常見(jiàn)的,本文就將使用java作為服務(wù)端,用python作為客戶端,實(shí)現(xiàn)不同語(yǔ)言之間的RPC調(diào)用,需要的可以參考下2023-10-10

