我想比较2个LocalTime
是否相等,但仅使用小时,分钟和秒,而不使用变量的所有数据(例如毫秒)。
我该怎么做?
答案 0 :(得分:1)
您可以使用myTime.withHour(0)
将小时数设置为相同,而不是只剩下不同的分钟和秒,并且您可以将这两种时间相提并论。
示例:
time1 = ...
time2 = ...
if (time1.withHour(0).equals(time2.withHour(0))) {
System.out.println('Minutes and Seconds of time1 and time2 are equal!');
}
答案 1 :(得分:1)
您可以将两个nanos都设置为一个数字,以使它们彼此相同(例如为零)以进行比较。
LocalTime localTime1 = LocalTime.of(1, 2, 3, 100);
LocalTime localTime2 = LocalTime.of(1, 2, 3, 47);
if (localTime1.withNano(0).equals(localTime2.withNano(0))){
System.out.println("something");
}
答案 2 :(得分:1)
考虑问题的最后编辑版本,您可以通过小时,分钟和第二部分的方式比较LocalTime
的两个实例:
LocalTime lt1 = LocalTime.now(); // usually contains seconds and subseconds
LocalTime lt2 = LocalTime.of(22, 48); // example with zero second part
boolean isEqualInSecondPrecision =
lt1.truncatedTo(ChronoUnit.SECONDS).equals(lt2.truncatedTo(ChronoUnit.SECONDS));
答案 3 :(得分:0)
类似这样的东西
LocalTime t1=..
LocalTime t2=..
LocalTime.of(t1.getHour(), t1.getMinutes()).compareTo(LocalTime.of(t2.getHour(),t2.getMinutes());
当然也需要seconds