spring boot項(xiàng)目使用@JsonFormat失效問(wèn)題的解決
使用@JsonFormat失效
在實(shí)體類定義時(shí)間格式

原因:項(xiàng)目中配置了fastjson包
返回?cái)?shù)據(jù)使用的也是fastjson包
return JSON.toJSONString(user);
調(diào)整代碼使用jackson包進(jìn)行數(shù)據(jù)轉(zhuǎn)換后,顯示正常
ObjectMapper mapper = new ObjectMapper(); return mapper.writeValueAsString(user);
效果圖:

使用@JsonFormat注解踩過(guò)的坑
項(xiàng)目技術(shù)棧:Spring boot(2.1.6.RELEASE)+ JDK(1.8)+ Maven(apache-maven-3.5.4)+ Mybatis-plus(3.4.0)
最近在做一個(gè)項(xiàng)目系統(tǒng)時(shí),需要Java后端給前端頁(yè)面返回時(shí)間(要用本地時(shí)間--北京時(shí)間),后端時(shí)間字段映射,轉(zhuǎn)換,不管怎么處理都是按照北京時(shí)間來(lái)的,這個(gè)是正確的。但是只要一到前端顯示的時(shí)候,就會(huì)比北京時(shí)間少8個(gè)小時(shí)。檢查各個(gè)可能出錯(cuò)的地方之后,感覺代碼寫的沒有問(wèn)題。但前端顯示還是少8個(gè)小時(shí),那肯定還是有問(wèn)題的,找吧。我的實(shí)體類如下:請(qǐng)注意被紅框圈住的 timezone = "GMT + 8"。后面會(huì)用到哦。

錯(cuò)誤原因
這也是我的一個(gè)習(xí)慣導(dǎo)致的,被紅框圈住的 timezone = "GMT + 8" 中間的加號(hào)兩邊各有一個(gè)有空格,然后序列化的時(shí)候沒有被識(shí)別這個(gè)時(shí)區(qū)。所以就導(dǎo)致傳給前端顯示的時(shí)候少了8個(gè)小時(shí),具體的可以看下圖所示。

解決方案
知道問(wèn)題的原因之后,改這個(gè)問(wèn)題就易如反掌了,把中間的空格刪除即可。如下圖所示。

再次測(cè)試,搞定。
以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
SpringMVC 域?qū)ο蠊蚕頂?shù)據(jù)的實(shí)現(xiàn)示例
本文主要介紹了SpringMVC 域?qū)ο蠊蚕頂?shù)據(jù)的實(shí)現(xiàn)示例,文中通過(guò)示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2021-08-08
Springboot 整合 Java DL4J 實(shí)現(xiàn)農(nóng)產(chǎn)品質(zhì)量檢測(cè)系統(tǒng)(推薦)
本文詳細(xì)介紹了系統(tǒng)的搭建過(guò)程,包括技術(shù)選型、數(shù)據(jù)處理、模型訓(xùn)練和評(píng)估等關(guān)鍵步驟,系統(tǒng)采用卷積神經(jīng)網(wǎng)絡(luò),對(duì)水果成熟度和缺陷進(jìn)行識(shí)別,有效解決了傳統(tǒng)方法成本高、效率低的問(wèn)題,有助于提升農(nóng)產(chǎn)品檢測(cè)的科技含量和自動(dòng)化水平2024-10-10
java讀取文件顯示進(jìn)度條的實(shí)現(xiàn)方法
當(dāng)讀取一個(gè)大文件時(shí),一時(shí)半會(huì)兒無(wú)法看到讀取結(jié)果,就需要顯示一個(gè)進(jìn)度條,是程序員明白已經(jīng)讀了多少文件,可以估算讀取還需要多少時(shí)間,下面的代碼可以實(shí)現(xiàn)這個(gè)功能2014-01-01
Java concurrency集合之ConcurrentLinkedQueue_動(dòng)力節(jié)點(diǎn)Java學(xué)院整理
這篇文章主要介紹了Java concurrency集合之ConcurrentLinkedQueue,需要的朋友可以參考下2017-06-06
springAOP中用joinpoint獲取切入點(diǎn)方法的參數(shù)操作
這篇文章主要介紹了springAOP中用joinpoint獲取切入點(diǎn)方法的參數(shù)操作,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2021-06-06
Java for-each循環(huán)使用難題2例(高級(jí)使用方法)
從Java5起,在Java中有了for-each循環(huán),可以用來(lái)循環(huán)遍歷collection和array。For each循環(huán)允許你在無(wú)需保持傳統(tǒng)for循環(huán)中的索引,或在使用iterator /ListIterator時(shí)無(wú)需調(diào)用while循環(huán)中的hasNext()方法就能遍歷collection2014-04-04
Tomcat版本與Java版本的關(guān)系及說(shuō)明
這篇文章主要介紹了Tomcat版本與Java版本的關(guān)系及說(shuō)明,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2025-04-04
Kotlin中?StateFlow?或?SharedFlow?的區(qū)別解析
Kotlin協(xié)程中的StateFlow和SharedFlow是響應(yīng)式數(shù)據(jù)流,分別用于UI狀態(tài)管理和事件通知,StateFlow有初始值,只保留最新值,適用于UI狀態(tài)管理;SharedFlow沒有初始值,可以配置緩存大小,適用于事件通知,感興趣的朋友一起看看吧2025-03-03

