我有一个传入的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”的转换自动添加,我不想要。如果我做错了,请纠正我。
问题是你的后端是在IST,但是当发送日期时,它是UTC。当2014-12-02
进入前端时,它被翻译为ms
中的时间,因为杰克逊处理时代。一种解决方案是将时区添加到JsonFormat
,如:
@JsonFormat(shape = JsonFormat.Shape.STRING, pattern = "yyyy-MM-dd", timezone = "IST")