我有要输出到Jackson的DTO,其中的字段定义为
@JsonFormat(shape = JsonFormat.Shape.STRING, pattern = "MM/dd/yyyy")
Date reportingDate;
该字段以
Timestamp Without Timezone
的形式存储在Postgres DB中,例如。2019-04-01 22:04:40.353
此字段的JSON错误地输出到
2019-04-02
。我已验证是由于杰克逊将我的值与格林尼治标准时间(GMT)的时区差异加了+5,所以出现了问题。这是不正确的,我应该只从数据库中获得确切的日期值。我的杰克逊配置不正确吗? 最佳答案
我通过添加以下timezone
属性解决了它。
@JsonFormat(shape = JsonFormat.Shape.STRING, pattern = "MM/dd/yyyy", timezone = "America/New_York")
Date reportingDate;
现在,它不会加+5成为格林尼治标准时间。