遇到一个问题,springboot升级成2.0后,从数据库查出来的日期,用Date接收,最后直接返回给前端,在谷歌浏览器中能正常显示成yyyy-MM-dd HH:mm:ss格式。但是在IE浏览器中日期显示的是“乱码”,因为springboot1.x版本的默认将Date字段返回的是时间戳 ,而谷歌、IE都会自动将时间戳转换成yyyy-MM-dd HH:mm:ss;在springboot2.0后,spring会将Date字段自动给转成UTC字符串了(在没有配置的情况下),所以date需要转换成时间戳还是yyyy-MM-dd HH:mm:ss,需要在spring增加如下配置,我选的是返回时间戳配置,成功解决了问题。
配置返回时间戳
spring jackson: serialization: write-dates-as-timestamps:true
全局配置返回字符串
spring: jackson: date-format: yyyy-MM-dd HH:mm:ss time-zone: GMT+8
有了第二个配置,就不需要在每个实体类的日期属性上加@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone="GMT+8")这个注解了
# 指定执行环境 spring: profiles: # active: @env@ active: dev jackson: serialization: WRITE_DATES_AS_TIMESTAMPS: true