【发布时间】:2018-10-26 21:59:21
【问题描述】:
给定两个包含小时和分钟的 Date 对象,我如何优雅地找出其中哪一个具有一天中最早的时间?
例如如果date1 在09:00 处是2018-01-01,并且date2 在08:00 处是2018-01-02,则根据此规范,date2 < date1。
【问题讨论】:
-
请尽量避免使用旧的
java.util.Date类。相反,您应该查看java.time包并选择最适合您的用例的类。 -
Date不包含任何小时或分钟。它只包含一个long值,该值是自 1970 年 1 月 1 日 00:00:00 GMT 以来的毫秒数。 -
不幸的是,我使用的 API 返回一个
java.util.Date,我无法更改它。肯定会发生一些转变吗?或者一种保持时间但将年/月/日重置为相同值的方法,然后使用before? -
很遗憾这个问题被否决了,因为很难在网上找到答案。
-
@SalvatoreIovene 将
Date转换为Instant,将Instant从UTC 调整为时区以获得ZonedDateTime,并从ZonedDateTime中提取LocalTime,并进行比较LocalTime对象,都是 Stack Overflow 上已经讨论过很多次的主题。