2 回答
TA贡献1946条经验 获得超3个赞
你是对的,而且不止于此。虽然尚未正式弃用,但类和早已过时Date,并且由于它们的设计问题,我们不应该在可以避免的情况下使用它们。CalendarTimestamp
我不是 Spring Boot 用户,也不知道将什么传递给查询而不是老式的Date. 我非常希望使用 java.time API 中的一种现代类型(其中和OffsetDateTime所属)存在更现代的解决方案。如果您只需要传递一个日期,而不是一天中的时间,那么 a将是合乎逻辑的,但正如我所说,我不知道。InstantDateTimeFormatterLocalDate
如果您不可避免地需要DateSpring Boot 查询:
private static Date getToday() {
Instant instant = Instant.now();
return Date.from(instant);
}
你的代码出了什么问题?要解析为OffsetDateTime您的日期时间字符串和格式模式字符串,不仅需要指定日期,还需要指定时间和 UTC 偏移量(或者您需要以其他方式提供它们)。在您的代码中,OffsetDateTime成功解析2019-02-16为yyyy-MM-dd,并且由于格式模式不再,它抱怨来自的字符串Timestamp.toString是。但是,缩短字符串不会有帮助,因为这样会丢失一天中的时间,并且无论如何都会丢失 UTC 偏移量,因此它无法正常工作。
TA贡献1752条经验 获得超4个赞
问题在于您使用的模式。尝试这个:-
DateTimeFormatter format = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SSS");
代替:-
DateTimeFormatter format = DateTimeFormatter.ofPattern("yyyy-MM-dd");
添加回答
举报