Java:
Twee datums vergelijken

Hoe:

Java maakt het vrij eenvoudig om datums te vergelijken. Gebruik LocalDate en de methoden compareTo, isBefore, of isAfter. Hier is de kern:

import java.time.LocalDate;

public class DateComparison {
    public static void main(String[] args) {
        LocalDate date1 = LocalDate.of(2023, 4, 1);
        LocalDate date2 = LocalDate.now(); // ervan uitgaande dat vandaag 2023-4-15 is

        // Gebruik van compareTo
        int comparisonResult = date1.compareTo(date2);
        if(comparisonResult < 0) {
            System.out.println("Date1 is voor Date2");
        } else if (comparisonResult > 0) {
            System.out.println("Date1 is na Date2");
        } else {
            System.out.println("Date1 is hetzelfde als Date2");
        }

        // Gebruik van isBefore en isAfter
        if(date1.isBefore(date2)) {
            System.out.println("Date1 is eerder dan Date2");
        } else if(date1.isAfter(date2)) {
            System.out.println("Date1 is later dan Date2");
        } else {
            System.out.println("Date1 is dezelfde dag als Date2");
        }
    }
}

Voorbeelduitvoer voor de datum van vandaag als 2023-04-15:

Date1 is voor Date2
Date1 is eerder dan Date2

Diepgaande duik

Historisch gezien was de datumafhandeling in Java, nou ja, een hoofdpijn. Maar toen kwam Java 8 met java.time, een gamechanger. Nu gebruiken we LocalDate voor datums zonder tijd. Wil je datums inclusief tijd vergelijken? Kijk dan naar LocalDateTime.

Alternatieven? Zeker. Voor Java 8 waren er java.util.Date en java.util.Calendar. Je zou ze nog steeds kunnen gebruiken, maar waarom zou je je eigen graf graven?

Wat implementatie betreft, compareTo retourneert een int: negatief als het aanroepende object minder is (voor), nul als gelijk, positief als groter (na). isBefore en isAfter retourneren een boolean. Makkelijk te begrijpen, zonder addertjes onder het gras.

Zie ook

Duik voor meer details in deze bronnen: