java如何只使用小时、分钟和秒来比较localtime

ct2axkht  于 2021-06-30  发布在  Java
关注(0)|答案(4)|浏览(661)

我想比较一下如果2 LocalTime 是相等的,但只使用时、分和秒,而不是变量的所有数据,如毫秒。
我怎样才能做到呢?

i7uq4tfw

i7uq4tfw1#

考虑到问题的上一次编辑版本,您可以比较 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));
8xiog9wr

8xiog9wr2#

像这样的

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

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

wqsoz72f

wqsoz72f3#

您可以在这两种情况下使用 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!');
}
zzwlnbp8

zzwlnbp84#

你可以把两个纳米设置为一个数字,使它们彼此相同,比如说,0,来比较它们。

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");
}

相关问题