给定两个Date包含小时和分钟的对象,我如何优雅地找出其中哪一个具有一天中最早的时间?
例如,如果date1是2018-01-01在09:00,并且date2是2018-01-02在08:00,那么这个规范,date2 < date1。
如果您转换之前,您可以使用compareTo-Method 。LocalTimeDate
像这样转换(在https://www.baeldung.com/java-date-to-localdate-and-localdatetime找到):
public static LocalTime convertToLocalTimeViaInstant(Date dateToConvert) {
return dateToConvert.toInstant()
.atZone(ZoneId.systemDefault())
.toLocalTime();
}
Run Code Online (Sandbox Code Playgroud)
并像这样比较:
time1.compareTo(time2);
Run Code Online (Sandbox Code Playgroud)
如果你想使用一种方法,你可以使用这样的转换:
public static int compareTimeOfDates(Date date1, Date date2) {
return convertToLocalTimeViaInstant(date1).compareTo(convertToLocalTimeViaInstant(date2));
}
Run Code Online (Sandbox Code Playgroud)