欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

基于@JsonFormat的導包問題

 更新時間:2021年08月10日 11:03:31   作者:別動我的貓  
這篇文章主要介紹了關于@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)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。

相關文章

最新評論