Jackson日期反序列化时区问题
今天遇到了一个的问题,当用Jackson对Json中的日期类型进行反序列化时,出现了日期错误的问题,当时写法是这样的:
@Data @NoArgsConstructor public class TotalByAccessIdRest { @NotNull @JsonProperty("access_id") private String accessId; @NotNull @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") @JsonProperty("start_time") private Date startTime; @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") @JsonProperty("end_time") private Date endTime = new Date(); }
按平时来看,好像根本没有什么问题。但当你发送请求,比如你发送startTime或者endTime参数值为
2020-04-13时间时,在Controller端实际你收到后的值就变成了2020-04-12 看上去减少了一天解决方案:
- 在你每个日期类型的字段上的
@JsonFormat加上属性timezone="GMT+8" - 先将日期转成字符串然后再进行序列化传输,这样就不会有问题了

浙公网安备 33010602011771号