【发布时间】:2018-11-09 14:17:16
【问题描述】:
我有这个日期 "2018-05-30T16:19:58.016Z" 来自我的 Angular 应用程序。
在 Spring 中,date 字段如下:
@JsonFormat(pattern = "yyyy-MM-dd'T'HH:mm:ss.SSS'Z'")
private Date date;
我有什么遗漏的吗?
【问题讨论】:
标签: date spring-boot jackson2
我有这个日期 "2018-05-30T16:19:58.016Z" 来自我的 Angular 应用程序。
在 Spring 中,date 字段如下:
@JsonFormat(pattern = "yyyy-MM-dd'T'HH:mm:ss.SSS'Z'")
private Date date;
我有什么遗漏的吗?
【问题讨论】:
标签: date spring-boot jackson2
您可能必须指定输出到存储的日期格式,因为@JsonFormat(pattern = "yyyy-MM-dd'T'HH:mm:ss.SSS'Z'") 仅指定将日期解析为 Date 对象的日期格式。即使您的 Date 包含所有秒数和时区信息,默认 Date toString() 仍然是
以日期转义格式 yyyy-mm-dd 格式化日期。
根据 Java 8 文档。因此,如果您使用它,它很可能会丢弃所有关于转换的额外信息。
您可以查看此Convert java.util.Date to String,了解有关如何将日期转换为格式化字符串的信息。
【讨论】:
I save the object, and the date field is stored 时,这可能是问题所在。如果您的“保存对象”代码使用 toString() 来保存日期对象,那么根据 javadocs,它将保存为 yyyy-mm-dd。在不知道您使用什么来保存对象的情况下,我无法确定。
MySql date 类型不能保存带有时间戳的数据。它必须是 datetime 才能包含带有时间戳数据的日期时间。
【讨论】:
datetime 看看我有什么。
DATE 更改为TERMPORAL,现在一切都很好。