基于@JsonFormat的導包問題
@JsonFormat導包問題
@DateTimeFormat(pattern = "yyyy-MM-dd hh:mm:ss")//注解可以以該格式注入格式 @JsonFormat(locale="zh", timezone="GMT+8", pattern="yyyy-MM-dd HH:mm:ss")//輸出格式 private Date birthday;//出生日期',
在后臺像前臺傳參數(shù)時,日期沒有格式化,網(wǎng)上搜索了,輸出用@JsonFormat但是沒說用哪個包
下面是我脫坑之路:
import com.fasterxml.jackson.annotation.JsonFormat; import org.springframework.format.annotation.DateTimeFormat; <!-- JSON: jackson --> <dependency> <groupId>org.codehaus.jackson</groupId> <artifactId>jackson-core-asl</artifactId> <version>1.9.12</version> </dependency> <dependency> <groupId>org.codehaus.jackson</groupId> <artifactId>jackson-mapper-lgpl</artifactId> <version>1.9.12</version> </dependency> <dependency> <groupId>com.fasterxml.jackson.core</groupId> <artifactId>jackson-annotations</artifactId> <version>2.9.0</version> </dependency>
問題補充:
我想要的是返回給前臺的時間已經(jīng)格式化,然而上面并沒有解決我的問題于是:
方法如下:
單獨寫一個處理類繼承JsonSerializer
package com.szch.aspect; import org.codehaus.jackson.JsonGenerator; import org.codehaus.jackson.JsonProcessingException; import org.codehaus.jackson.map.JsonSerializer; import org.codehaus.jackson.map.SerializerProvider; import java.io.IOException; import java.text.SimpleDateFormat; import java.util.Date; /** * 格式化Response時間格式 * 在springmvc返回json數(shù)據(jù)的時候默認日期字段顯示的是long類型的時間戳 * 如果想要返回格式化的日期如:yyyy-MM-dd這種格式的需要進行出現(xiàn) */ public class CustomDateSerializer extends JsonSerializer<Date> { public void serialize(Date value, JsonGenerator jsonGenerator, SerializerProvider serializerProvider) throws IOException, JsonProcessingException{ SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); jsonGenerator.writeString(sdf.format(value)); } }
在實體類的屬性字段上添加@JsonSerialize注解
@DateTimeFormat(pattern = "yyyy-MM-dd hh:mm:ss")//注解可以以該格式注入格式 @JsonFormat(pattern="yyyy-MM-dd HH:mm:ss",timezone="GMT+8")//輸出格式 @JsonSerialize(using = CustomDateSerializer.class) private Date lastLogin;//最后登錄時間',
結果OK了,postman返回~
使用@JsonFormat注解踩過的坑
一、背景描述
項目技術棧:
Spring boot(2.1.6.RELEASE)+ JDK(1.8)+ Maven(apache-maven-3.5.4)+ Mybatis-plus(3.4.0)
最近在做一個項目系統(tǒng)時,需要Java后端給前端頁面返回時間(要用本地時間--北京時間),后端時間字段映射,轉換,不管怎么處理都是按照北京時間來的,這個是正確的。但是只要一到前端顯示的時候,就會比北京時間少8個小時。
檢查各個可能出錯的地方之后,感覺代碼寫的沒有問題。但前端顯示還是少8個小時,那肯定還是有問題的,找吧。我的實體類如下:請注意被紅框圈住的 timezone = "GMT + 8"。后面會用到哦。
二、錯誤原因
這也是我的一個習慣導致的,被紅框圈住的 timezone = "GMT + 8" 中間的加號兩邊各有一個有空格,然后序列化的時候沒有被識別這個時區(qū)。所以就導致傳給前端顯示的時候少了8個小時,具體的可以看下圖所示。
三、解決方案
知道問題的原因之后,改這個問題就易如反掌了,把中間的空格刪除即可。如下圖所示。
再次測試,搞定。
以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。
相關文章
Java?DelayQueue實現(xiàn)任務延時示例講解
DelayQueue是一個無界的BlockingQueue的實現(xiàn)類,用于放置實現(xiàn)了Delayed接口的對象,其中的對象只能在其到期時才能從隊列中取走。本文就來利用DelayQueue實現(xiàn)延時任務,感興趣的可以了解一下2022-09-09解決spring-boot 打成jar包后 啟動時指定參數(shù)無效的問題
這篇文章主要介紹了解決spring-boot 打成jar包后 啟動時指定參數(shù)無效的問題,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2021-06-06詳解Http請求中Content-Type講解以及在Spring MVC中的應用
這篇文章主要介紹了Http請求中Content-Type講解以及在Spring MVC中的應用的相關資料,需要的朋友可以參考下2017-02-02SpringBoot整合Mybatis與druid實現(xiàn)流程詳解
這篇文章主要介紹了springboot整合mybatis plus與druid詳情,文章圍繞主題展開詳細的內容介紹,具有一定的參考價值,需要的下伙伴可以參考一下2022-10-10java jackson 將對象轉json時,忽略子對象的某個屬性操作
這篇文章主要介紹了java jackson 將對象轉json時,忽略子對象的某個屬性操作,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2020-10-10