0

我想比较 2LocalTime是否相等,但只使用小时、分钟和秒,而不是变量的所有数据,比如毫秒。

我怎样才能做到这一点?

4

4 回答 4

2

考虑到您问题的最后编辑版本,您可以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));
于 2018-12-07T01:18:17.457 回答
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");
}
于 2018-12-06T15:44:16.520 回答
1

您可以在两者中将小时设置为相同myTime.withHour(0),而不是只留下不同的分钟和秒,并且您可以来这 2 次。

例子:

time1 = ...
time2 = ...

if (time1.withHour(0).equals(time2.withHour(0))) {
  System.out.println('Minutes and Seconds of time1 and time2 are equal!');
}
于 2018-12-06T14:56:48.590 回答
0

像这样的东西

LocalTime t1=..
LocalTime t2=..
LocalTime.of(t1.getHour(), t1.getMinutes()).compareTo(LocalTime.of(t2.getHour(),t2.getMinutes());

如果你当然需要,还有几秒钟

于 2018-12-06T15:24:24.583 回答