【发布时间】:2015-10-27 15:51:21
【问题描述】:
我在我的项目中使用了 Spring Date Rest 和 Spring Boot。 这个项目有一个对象,我使用注释 @JsonFormat 来格式化将从我的 Json 接收到的日期字段。 字段日期的格式为“dd/MM/yyyy”。 当我在我的 json 中发送值“08/07/1980”时,Jackson 会转换为值“07/07/1980”。
问题是@JsonFormat 设置的日期少了一天
这是我的源代码
@Temporal(TemporalType.DATE)
@JsonFormat(shape = JsonFormat.Shape.STRING, pattern = "dd/MM/yyyy", locale = "pt-BR", timezone = "UTC")
private Date birthDate;
谢谢
【问题讨论】:
-
我猜你的意思是在向后端执行请求时。客户端是浏览器还是某种 REST 工具?客户端和服务器是否在同一时区?
-
我的第一个猜测是,由于您使用 UTC 并省略小时和秒,因此应用巴西和 UTC 之间的偏移量会导致时间信息丢失。作为快速尝试,您可以从注释中省略 locale 属性并使用此模式代替“yyyy-MM-dd'T'HH:mm:ss.SSSZ”,其中包括时区信息和毫秒,因此客户端的表示无关紧要选择
标签: json format jackson spring-boot spring-data-rest