在春季靴子中,杰克逊执行序列化和反序列化。默认情况下,Jackson通过将日期转换为GMT时区来序列化日期,而在反序列化时,它希望日期位于GMT时区中,因此它将日期转换为本地时区。但是,就我而言,我们有两个时区,即EET和EEST。我们目前不在夏天,Jackson将以相同的操作和相同的请求将一个日期反序列化到EET,将另一个日期反序列化到EEST。这是什么原因以及如何解决?
答案 0 :(得分:1)
我们最终对所有应用程序使用统一的GMT时区。我们强迫Spring在运行时将GMT设置为应用程序时区。代码:
@PostConstruct
void started() {
TimeZone.setDefault(TimeZone.getTimeZone("UTC"));
}
答案 1 :(得分:0)
尝试通过以下时区反序列化。
@JsonFormat(shape=JsonFormat.Shape.STRING, pattern="yyyy-MM-dd'T'HH:mm:ss.SSSZ", timezone="America/Phoenix")
private Date date;