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;
注解的优先级高于配置,注解相对于配置文件比较麻烦,不过可以针对不同的字段的不同需求,进行单独配置。