春天mvc杰克逊日期删除时间

问题描述 投票:0回答:1

我有一个传入的json {"frm":"2014-12-02","to":"2018-03-03"}。在我的春季mvc应用程序中,它将被转换为相应的对象。

@Getter
@Setter
@NoArgsConstructor
@EqualsAndHashCode
@ToString
public class Lab {
    @JsonFormat(shape = JsonFormat.Shape.STRING, pattern="yyyy-MM-dd")
    private Date frm;
    @JsonFormat(shape = JsonFormat.Shape.STRING, pattern="yyyy-MM-dd")
    private Date to;
}

当我打印这个类的值时,我得到“frm”的结果为

Lab(frm=Tue Dec 02 05:30:00 IST 2014, to=Sat Mar 03 05:30:00 IST 2018)

但是,我想要的价值就像

Lab(frm=Tue Dec 02 00:00:00 IST 2014, to=Sat Mar 03 00:00:00 IST 2018)

从json到java“5:30”的转换自动添加,我不想要。如果我做错了,请纠正我。

date spring-mvc jackson
1个回答
0
投票

问题是你的后端是在IST,但是当发送日期时,它是UTC。当2014-12-02进入前端时,它被翻译为ms中的时间,因为杰克逊处理时代。一种解决方案是将时区添加到JsonFormat,如:

@JsonFormat(shape = JsonFormat.Shape.STRING, pattern = "yyyy-MM-dd", timezone = "IST")

此链接有更多信息:http://www.saturnringstation.com/2017/01/07/learning-deserialization-of-date-with-timezone-jackson-mybatis-and-mysql-why-does-it-always-one-day-early/

© www.soinside.com 2019 - 2024. All rights reserved.