欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

springboot json时间格式化处理的方法

程序员文章站 2024-02-09 08:37:58
application.properties中加入如下代码 springboot 默认使用 jackson 解析 json spring.jackson.dat...

application.properties中加入如下代码

springboot 默认使用 jackson 解析 json

spring.jackson.date-format=yyyy-mm-dd hh:mm:ss
spring.jackson.time-zone=gmt+8

如果个别实体需要使用其他格式的 pattern,在实体上加入注解即可

import org.springframework.format.annotation.datetimeformat;
import com.fasterxml.jackson.annotation.jsonformat;
public class mrtype {

  @jsonformat(timezone = "gmt+8",pattern = "yyyy-mm-dd")
  @datetimeformat(pattern="yyyy-mm-dd")
  private date createddate;
}

spring boot 日期数据格式转换@jsonformat实例

pojo的bean里面通常会有date类型的数据,直接通过@responsebody返回出去的是一个长整型时间戳(从1970到该变量时间的毫秒数),关于原因,网上很多,此处不细讲。如果想要返回自定义的日期格式,如:yyyymmddhhmmss,需做相关处理,网上有很多处理方式,大体都是继承、重写,比较复杂。实际上json已有注解@jsonformat支持,使用实例:

@jsonformat(timezone = "gmt+8", pattern = "yyyymmddhhmmss")
private date createtime;

作用:1)入参时,请求报文只需要传入yyyymmddhhmmss字符串进来,则自动转换为date类型数据。2)出参时,date类型的数据自动转换为14位的字符串返回出去。

详细可参阅: http://fasterxml.github.io/jackson-annotations/javadoc/2.0.0/com/fasterxml/jackson/annotation/jsonformat.html

相关的其他注解:

  1. @jsonignoreproperties 此注解是类注解,作用是json序列化时将java bean中的一些属性忽略掉,序列化和反序列化都受影响。 @jsonignoreproperties(value = { "word" }) 
  2. @jsonignore 此注解用于属性或者方法上(最好是属性上),作用和上面的@jsonignoreproperties一样。
  3. @jsonserialize 此注解用于属性或者getter方法上,用于在序列化时嵌入我们自定义的代码,比如序列化一个double时在其后面限制两位小数点。 @jsonserialize(using = customdoubleserialize.class) 
  4. @jsondeserialize 此注解用于属性或者setter方法上,用于在反序列化时可以嵌入我们自定义的代码,类似于上面的@jsonserialize  @jsondeserialize(using = customdatedeserialize.class)

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。