SpringBoot JSON时间数据差8小时
写项目遇到一个大坑,md 突然发现前端传的时间和我接收到的时间不一样,我传回去的时间和显示的时间不一样,找了一会,定位问题发生在Json格式化的过程中.
原因是spring转json的默认实现jackson中会根据时区去转换时间,而jackson的默认时区跟国内应该是相差8小时,所以在时间换算上自动减去了8小时。
可以通过jackson 的注解 @JsonFormat 解决问题
@JsonFormat(pattern="yyyy-MM-dd HH:mm:ss" ,timezone = "GMT+8")
private Date createTime;
@JsonFormat(pattern="yyyy-MM-dd HH:mm:ss" ,timezone = "GMT+8")
private Date updateTime;
也可以在 SpringBoot 配置文件中统一配置,推荐使用这种方式:
spring.jackson.date-format=yyyy-MM-dd HH:mm:ss
spring.jackson.time-zone=GTM+8 #或者Asia/Shanghai