Java, как сравнить LocalTime, используя только часы, минуты и секунды - PullRequest
0 голосов
/ 06 декабря 2018

Я хочу сравнить, если 2 LocalTime равны, но только с использованием часов, минут и секунд, а не со всеми данными переменной, например, в миллисекундах.

Как мне это сделать?

Ответы [ 4 ]

0 голосов
/ 07 декабря 2018

Учитывая последнюю отредактированную версию вашего вопроса, вы можете сравнить два экземпляра 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));
0 голосов
/ 06 декабря 2018

Примерно так:

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

, а также секунд , если вам, конечно, нужно

0 голосов
/ 06 декабря 2018

Вы можете просто установить обе нано на одно число, чтобы сделать их одинаковыми друг с другом, скажем, ноль, чтобы сравнить их.

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");
}
0 голосов
/ 06 декабря 2018

Вы можете установить одно и то же в обоих часах с помощью 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!');
}
...