如何将旧版java.util.Date与Java 8中的特定日期进行比较?

How to compare a legacy java.util.Date with specific dates in Java 8?

提问人:maxxyme 提问时间:10/7/2022 最后编辑:Anonymousmaxxyme 更新时间:10/8/2022 访问量:66

问:

在我们的 Java8+ 代码中,我们有一个返回对象的遗留服务;我们想知道它是否在日期范围内(给定日期以 ISO 字符串形式提供),例如:java.util.Date

java.util.Date date = legacyService.retrieveLegacyDate(..); // won't change...

if (date.isAfter("2022-08-16") && date.isBefore("2022-10-17")) { // pseudo-code => to FIX
    // date is OK, proceed....
}

如何使用 java.time API 中的新类型来“修复”伪代码?

注意:目前我找不到任何处理此类问题的内容(无论是在 SO 上还是在其他地方),因为它要么是关于比较“Dates”(对象)或 LocalDate/LocalDateTime/等,但始终是它们之间的相同类型对象。

日期 java-time 日期比较

评论

0赞 Sweeper 10/7/2022
A 不表示年-月-日的“日期”。它代表了时间上的“瞬间”。要将其转换为“日期”,您需要一个额外的时区。你确定你还想这样做吗?java.util.Date
5赞 Mark Rotteveel 10/7/2022
java.util.Date.toInstant()?
2赞 Anonymous 10/7/2022
考虑到时区,没有任何方法可以比较!Date2022-08-16
1赞 pringi 10/7/2022
这回答了你的问题吗?将 java.util.Date 转换为 java.time.LocalDate
2赞 Sweeper 10/7/2022
好吧,如果你谈论的是瞬间,就没有“一天”的概念。“2022-08-16”不是“特定时刻”。如果你有这样的日期,你必须考虑时区,因为不同的时区有不同的日期边界。“2022-08-16 23:59”在不同时区意味着不同的东西!

答: 暂无答案