pojo(实体类)对应的字段(日期)类型为Date类型,用jackson的注解@JsonFormat解决。

1,引用jackson 依赖(springboot自带jackson依赖)

         <dependency>
             <groupId>org.codehaus.jackson</groupId>
             <artifactId>jackson-mapper-asl</artifactId>
             <version>1.9.13</version>
         </dependency>
 
         <dependency>
             <groupId>com.fasterxml.jackson.core</groupId>
             <artifactId>jackson-annotations</artifactId>
             <version>2.8.0</version>
         </dependency>
 
         <dependency>
             <groupId>com.fasterxml.jackson.core</groupId>
             <artifactId>jackson-databind</artifactId>
             <version>2.8.8</version>
          </dependency>

2,pojo实体类上加注解

在属性上加注解

@JsonFormat(pattern="yyyy-MM-dd",timezone = "GMT+8")
private Date birthday;

在get方法上加注解

@JsonFormat(pattern="yyyy-MM-dd",timezone = "GMT+8")
public Date getBirthday(){
     return this.birthday;
}

spring-boot默认使用Jackson对返回到前端的值进行序列化。Jackson框架默认的时区是UTC,相比于东八区少了8小时(东+西-)。hh:12小时制;HH:24小时制。

如果不加timezone,那么返回到前端的日期值是少一天。为解决这个问题需加上timezone="GMT+8"。

1)springboot项目在application.yml文件中配置

spring: 
  jackson:
    date-format: yyyy-MM-dd hh:mm:ss
    time-zone: GMT+8

2)使用@JsonFormat注解

@JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd hh:mm:ss")
Date startTime;

注解的优先级高于配置,注解相对于配置文件比较麻烦,不过可以针对不同的字段的不同需求,进行单独配置。

 posted on 2021-04-23 14:15  会飞的金鱼  阅读(1496)  评论(0)    收藏  举报