Java:
Een datum in de toekomst of het verleden berekenen
Hoe:
import java.time.LocalDate;
import java.time.temporal.ChronoUnit;
public class DateCalculatie {
public static void main(String[] args) {
LocalDate vandaag = LocalDate.now();
// Voeg 10 dagen toe aan de huidige datum
LocalDate toekomstDate = vandaag.plusDays(10);
System.out.println("Toekomstige Datum: " + toekomstDate);
// Trek 2 maanden af van de huidige datum
LocalDate verledenDatum = vandaag.minus(2, ChronoUnit.MONTHS);
System.out.println("Verleden Datum: " + verledenDatum);
}
}De output kan er als volgt uitzien:
Toekomstige Datum: 2023-04-30
Verleden Datum: 2023-02-20Diep Duiken
Voor Java 8 was het manipuleren van datums een pijn. Oude klassen zoals java.util.Date en java.util.Calendar waren gevoelig voor bugs en niet gebruiksvriendelijk. Het java.time pakket geïntroduceerd in Java 8 loste dit op met doordachte klassen zoals LocalDate, LocalTime, en ZonedDateTime.
Alternatieven? In het pre-Java 8 tijdperk waren externe bibliotheken zoals Joda-Time gangbaar. Tegenwoordig kun je ze nog steeds gebruiken, maar het standaard java.time wordt aanbevolen omdat het officieel deel uitmaakt van Java en zaken zoals zomertijd, tijdzones en schrikkeljaren elegant afhandelt.
Bij het coderen van datum berekeningen, overweeg tijdzones als je context dit vereist. Voor UTC, gebruik Instant in plaats van LocalDate. Voor specifieke zones zou je typisch ZonedDateTime gebruiken. Onthoud, datum-tijd operaties kunnen worden geketend, zoals datum.minWeeken(1).plusUren(3), wat je code schoner maakt.
Zie Ook
- Het
java.timepakketoverzicht: Oracle Docs - Tijdzone afhandeling met
ZonedDateTime: Oracle ZonedDateTime - Officiële datum- en tijdpatronen voor
java.time.format.DateTimeFormatter: Oracle DateTimeFormatter