Durchlaufen Sie eine Reihe von Datumsangaben in Java

Durchlaufen einer Reihe von Daten in Java

1. Überblick

In diesem kurzen Lernprogramm werden verschiedene Möglichkeiten zum Durchlaufen eines Datumsbereichs unter Verwendung eines Start- und Enddatums in Java 7, Java 8 und Java 9 beschrieben.

2. Java 7

Beginnend mit Java 7we’ll use the class java.util.Date for holding the date values and java.util.Calendar for incrementing from one date to the next.

Sehen wir uns ein Beispiel an, in dem eine einfachewhile-Schleife zusammen mit den Klassenjava.util.Date undjava.util.Calendar verwendet wird:

void iterateBetweenDatesJava7(Date start, Date end) {
    Date current = start;

    while (current.before(end)) {
        processDate(current);

        Calendar calendar = Calendar.getInstance();
        calendar.setTime(current);
        calendar.add(Calendar.DATE, 1);
        current = calendar.getTime();
    }
}

3. Java 8

Beginnend mit Java 8,we can use the new Java 8 Date API. Dies gibt uns selbst handhabende, unveränderliche, flüssige und fadensichere Objekte. Es ist auchallows us to write cleaner code without the need for a helper classwiejava.util.Calendar zum Inkrementieren der Daten.

Verwenden Sie eine einfachefor-Schleife, dieLocalDate-Klasse und die MethodeplusDays(1), um den Datumsbereich zu durchlaufen:

void iterateBetweenDatesJava8(LocalDate start, LocalDate end) {
    for (LocalDate date = start; date.isBefore(end); date = date.plusDays(1)) {
        processDate(date);
    }
}

Es ist erwähnenswert, dassalthough the Stream API is available beginning in Java 8, iterating between two dates using the Date API in conjunction with the Stream API isn’t possible until Java 9.

Weitere Informationen zur Java 8 Date API finden Sie unterthis article.

4. Java 9+

Java 9 introduces the method datesUntil, which lets us use the Stream API, um vom Startdatum bis zum Enddatum zu iterieren.

Aktualisieren wir unseren Beispielcode, um diese Funktion zu nutzen:

void iterateBetweenDatesJava9(LocalDate start, LocalDate end) {
    start.datesUntil(end).forEach(this::processDate);
}

5. Fazit

Wie wir in diesem kurzen Artikel gesehen haben, ist das Iterieren über eine Reihe von Daten in Java eine einfache Aufgabe. Dies gilt insbesondere für Java 8 und höher, wo wir mit der Datums-API leichter mit Datumsangaben umgehen können.

Beachten Sie, dass in Java 7 und früheren Versionen empfohlen wird, sowohl Datum als auch Uhrzeit zu behandeln, auch wenn nur Datumsangaben verwendet werden.

Mit Java 8 und höher haben wir jedoch den Vorteil, dass wir eine geeignete Klasse aus der Datums-API auswählen können, z. B.LocalDate,LocalDateTime, und andere Optionen, je nach unseren Anforderungen.

Ab Java 9 können wir natürlich die Stream-API in Verbindung mit der Date-API verwenden, um einen Datenstrom zu iterieren.

Wie immer können die Codefragmenteover on GitHub gefunden werden.