Spring jackson:升级后的日期格式格式更改

时间:2016-01-07 07:40:34

标签: spring-boot

从春季启动升级后1.2.6.RELEASE - > 1.3.1.RELEASE使用带有时区偏移的iso 8101 dateformat时似乎存在问题。 在我的application.yml中,jackson日期格式设置为使用时区偏移格式

spring:
   jackson:
      date-format: yyyy-MM-dd'T'HH:mm:ss.SSSXXX

使用boot 1.2.6,这会产生具有正确iso 8601时区格式的日期时间格式,如2014-01-01T23:01:01.010 + 01:00

但是使用启动1.3.1,格式保存在祖鲁时区 2014-01-01T22:01:01.010Z

2 个答案:

答案 0 :(得分:1)

默认情况下,杰克逊使用GMT时区。您可以通过添加到配置文件来更改它:

spring: jackson: time-zone: Europe/Berlin

或使用

更改某些属性

public class DateStuff { @JsonFormat(shape=JsonFormat.Shape.STRING, pattern="yyyy-MM-dd,HH:00", timezone="CET") public Date creationTime; }

Jackson FAQ: Date Handling

答案 1 :(得分:1)

感谢@dimuha我明白了。您还必须添加时区属性,以使其具有与升级前相同的行为

spring:
  jackson:
    date-format: yyyy-MM-dd'T'HH:mm:ss.SSSXXX
    time-zone: Europe/Berlin

这将输出2014-01-01T23:01:01.010 + 01:00 iso 8601个日期。