基于@JsonFormat的導(dǎo)包問題
@JsonFormat導(dǎo)包問題
@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>
問題補(bǔ)充:
我想要的是返回給前臺的時間已經(jīng)格式化,然而上面并沒有解決我的問題于是:
方法如下:
單獨(dú)寫一個處理類繼承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ù)的時候默認(rèn)日期字段顯示的是long類型的時間戳 * 如果想要返回格式化的日期如:yyyy-MM-dd這種格式的需要進(jìn)行出現(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)); } }
在實(shí)體類的屬性字段上添加@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;//最后登錄時間',
結(jié)果OK了,postman返回~
使用@JsonFormat注解踩過的坑
一、背景描述
項目技術(shù)棧:
Spring boot(2.1.6.RELEASE)+ JDK(1.8)+ Maven(apache-maven-3.5.4)+ Mybatis-plus(3.4.0)
最近在做一個項目系統(tǒng)時,需要Java后端給前端頁面返回時間(要用本地時間--北京時間),后端時間字段映射,轉(zhuǎn)換,不管怎么處理都是按照北京時間來的,這個是正確的。但是只要一到前端顯示的時候,就會比北京時間少8個小時。
檢查各個可能出錯的地方之后,感覺代碼寫的沒有問題。但前端顯示還是少8個小時,那肯定還是有問題的,找吧。我的實(shí)體類如下:請注意被紅框圈住的 timezone = "GMT + 8"。后面會用到哦。
二、錯誤原因
這也是我的一個習(xí)慣導(dǎo)致的,被紅框圈住的 timezone = "GMT + 8" 中間的加號兩邊各有一個有空格,然后序列化的時候沒有被識別這個時區(qū)。所以就導(dǎo)致傳給前端顯示的時候少了8個小時,具體的可以看下圖所示。
三、解決方案
知道問題的原因之后,改這個問題就易如反掌了,把中間的空格刪除即可。如下圖所示。
再次測試,搞定。
以上為個人經(jīng)驗(yàn),希望能給大家一個參考,也希望大家多多支持腳本之家。
相關(guān)文章
Java?DelayQueue實(shí)現(xiàn)任務(wù)延時示例講解
DelayQueue是一個無界的BlockingQueue的實(shí)現(xiàn)類,用于放置實(shí)現(xiàn)了Delayed接口的對象,其中的對象只能在其到期時才能從隊列中取走。本文就來利用DelayQueue實(shí)現(xiàn)延時任務(wù),感興趣的可以了解一下2022-09-09解決spring-boot 打成jar包后 啟動時指定參數(shù)無效的問題
這篇文章主要介紹了解決spring-boot 打成jar包后 啟動時指定參數(shù)無效的問題,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2021-06-06tk.mybatis如何擴(kuò)展自己的通用mapper
這篇文章主要介紹了tk.mybatis如何擴(kuò)展自己的通用mapper操作,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2021-06-06詳解Http請求中Content-Type講解以及在Spring MVC中的應(yīng)用
這篇文章主要介紹了Http請求中Content-Type講解以及在Spring MVC中的應(yīng)用的相關(guān)資料,需要的朋友可以參考下2017-02-02SpringBoot整合Mybatis與druid實(shí)現(xiàn)流程詳解
這篇文章主要介紹了springboot整合mybatis plus與druid詳情,文章圍繞主題展開詳細(xì)的內(nèi)容介紹,具有一定的參考價值,需要的下伙伴可以參考一下2022-10-10java jackson 將對象轉(zhuǎn)json時,忽略子對象的某個屬性操作
這篇文章主要介紹了java jackson 將對象轉(zhuǎn)json時,忽略子對象的某個屬性操作,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2020-10-10