Подтвердить что ты не робот

Как сравнить экземпляры LocalDate Java 8

Я пишу приложение, которое должно быть достаточно точным в датах, и мне интересно, как я могу сравнивать экземпляры LocalDate.. пока я использовал что-то вроде:

LocalDate localdate1 = LocalDate().now();
LocalDate localdate2 = someService.getSomeDate();
localdate1.equals(localdate2);

Но я заметил, что мое приложение дает мне некоторые запутанные результаты, и я думаю, что это из-за сравнения даты.

Я думаю о том, чтобы получить время с 1970-х годов и сравнить эти два, но мне должно быть легче, я уверен в этом

4b9b3361

Ответ 1

Использование equals() LocalDate делает переопределение равным:

int compareTo0(LocalDate otherDate) {
    int cmp = (year - otherDate.year);
    if (cmp == 0) {
        cmp = (month - otherDate.month);
        if (cmp == 0) {
            cmp = (day - otherDate.day);
        }
    }
    return cmp;
}

Если вас не устраивает результат equals(), вы можете использовать предопределенные методы LocalDate.

Обратите внимание, что все эти методы используют метод compareTo0() и просто проверяют значение cmp. если вы все еще получаете странный результат (чего не следует), приложите пример ввода и вывода