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

基于@JsonFormat的導(dǎo)包問(wèn)題

 更新時(shí)間:2021年08月10日 11:03:31   作者:別動(dòng)我的貓  
這篇文章主要介紹了關(guān)于@JsonFormat的導(dǎo)包問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教

@JsonFormat導(dǎo)包問(wèn)題

@DateTimeFormat(pattern = "yyyy-MM-dd hh:mm:ss")//注解可以以該格式注入格式
@JsonFormat(locale="zh", timezone="GMT+8", pattern="yyyy-MM-dd HH:mm:ss")//輸出格式
private Date birthday;//出生日期',

在后臺(tái)像前臺(tái)傳參數(shù)時(shí),日期沒(méi)有格式化,網(wǎng)上搜索了,輸出用@JsonFormat但是沒(méi)說(shuō)用哪個(gè)包

下面是我脫坑之路:

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>

問(wèn)題補(bǔ)充:

我想要的是返回給前臺(tái)的時(shí)間已經(jīng)格式化,然而上面并沒(méi)有解決我的問(wèn)題于是:

方法如下:

單獨(dú)寫一個(gè)處理類繼承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時(shí)間格式
 * 在springmvc返回json數(shù)據(jù)的時(shí)候默認(rèn)日期字段顯示的是long類型的時(shí)間戳
 * 如果想要返回格式化的日期如: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;//最后登錄時(shí)間',

結(jié)果OK了,postman返回~

使用@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ò)的地方之后,感覺(jué)代碼寫的沒(méi)有問(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í)候沒(méi)有被識(shí)別這個(gè)時(shí)區(qū)。所以就導(dǎo)致傳給前端顯示的時(shí)候少了8個(gè)小時(shí),具體的可以看下圖所示。

三、解決方案

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

再次測(cè)試,搞定。

以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。

相關(guān)文章

最新評(píng)論