我有spring boot rest服务,它调用另一个服务xyz并从json接收yyyy-MM-ddXXX格式的日期。但是我的服务响应中日期的时区正在更改。假设我从服务xyz获取JSON中的日期为“ date”:“ 2018-08-27-07:00”,但是我的服务响应返回日期:“ 2018-08-27-04:00”。偏移量已更改。我的POJO中的日期字段为。我想使用与后端服务相同的偏移量,它可以是任何偏移量。
@JsonFormat(shape=JsonFormat.Shape.STRING, pattern="yyyy-MM-ddXXX")
private Calendar date;
答案 0 :(得分:1)
问题是Calendar
(和Date
)使用隐式时间转换将其调整为您的时区。几乎总是这是意料之外的事情。
为避免这种情况,请使用java.time
类(例如OffsetDateTime
或ZonedDateTime
,如果不需要在时区工作,甚至可以使用LocalDateTime
类)。
还有一些小建议:尝试使用符合ISO8601
标准的时间格式(例如2018-08-24T22:30:00
)