---
title: 'Datumsklasse java.time.LocalDate'
url: 'https://tutego.de/blog/javainsel/2017/02/datumsklasse-java-time-localdate'
markdown: 'https://tutego.de/blog/javainsel/2017/02/datumsklasse-java-time-localdate.md'
date: '2017-02-21'
description: 'Ein Datum (ohne Zeitzone) repräsentiert die Klasse LocalDate. Damit lässt sich zum Beispiel ein Geburtsdatum repräsentieren. Ein temporales Objekt kann über die statischen of(…)-Fabrikmethoden aufgebaut, über ofInstant(Instant instant, ZoneId zone) oder von einem anderen temporalen Objekt abgeleite…'
taxonomy:
  category:
    - Allgemein
    - Insel
    - 'Java 9'
---

# Datumsklasse java.time.LocalDate

![Illustration einer tropischen Insel mit Palmen und einem hohen Berg](https://tutego.de/blog/javainsel/user/themes/tutego/images/insel-cover.jpg)# Java Blog für Programmierer

[Java Blog für Programmierer](https://tutego.de/blog/javainsel/)

## Datumsklasse java.time.LocalDate

21.02.2017 · [Christian Ullenboom](https://tutego.de/blog/javainsel/author/admin/)

Ein Datum (ohne Zeitzone) repräsentiert die Klasse `LocalDate`. Damit lässt sich zum Beispiel ein Geburtsdatum repräsentieren.

Ein temporales Objekt kann über die statischen `of(…)`-Fabrikmethoden aufgebaut, über `ofInstant(Instant instant, ZoneId zone)` oder von einem anderen temporalen Objekt abgeleitet werden. Interessant sind die Methoden, die mit einem TemporalAdjuster arbeiten.

Beispiel

```java
 LocalDate today = LocalDate.now();
 LocalDate nextMonday = today.with( TemporalAdjusters.next( DayOfWeek.SATURDAY ) );
 System.out.printf( "Heute ist der %s, und frei ist am Samstag, den %s",
                    today, nextMonday );
```

Mit den Objekten in der Hand können wir diverse Getter nutzen und einzelne Felder erfragen, etwa `getDayOfMonth()`, `getDayOfYear()` (liefern int) oder `getDayOfWeek()`, das eine Aufzählung vom Typ DayOfWeek liefert, und `getMonth()`, das eine Aufzählung vom Typ Month Weiterhin gibt es long `toEpochDay()` und und in Java 9 long `toEpochSecond(LocalTime time, ZoneOffset offset)`.

Dazu kommen Methoden, die mit `minusXXX(…)` oder `plusXXX(…)` neue `LocalDate`-Objekte liefern, wenn zum Beispiel mit `minusYear(long yearsToSubtract)` eine Anzahl Jahre zurückgelaufen werden soll. Durch die Negation des Vorzeichens kann auch die jeweils entgegengesetzte Methode genutzt werden, sprich `LocalDate.now().minusMonths(1)` kommt zum gleichen Ergebnis wie `LocalDate.now()`.`plusMonths`(-1). Die `withXXX(…)`-Methoden belegen ein Feld neu und liefern ein modifiziertes neues `LocalDate`-Objekt.

Von einem LocaleDate lassen sich andere temporale Objekte bilden, `atTime(…)` etwa liefert `LocalDateTime`-Objekte, bei denen gewisse Zeit-Felder belegt sind. `atTime(int hour, int minute)` ist so ein Beispiel. Mit `until(…)` lässt sich eine Zeitdauer vom Typ Period liefern. Interessant sind zwei neue Java 9-Methoden, die einen Strom von `LocalDate`-Objekten bis zu einem Endpunkt liefern.

- `Stream<LocalDate> datesUntil(LocalDate endExclusive)`
- `Stream<LocalDate> datesUntil(LocalDate endExclusive, Period step)`

Kategorien: [Allgemein](https://tutego.de/blog/javainsel/category/allgemein/), [Insel](https://tutego.de/blog/javainsel/category/insel/), [Java 9](https://tutego.de/blog/javainsel/category/java-9/)

[← Alle Beiträge](https://tutego.de/blog/javainsel/)

---

## Navigation

- Previous: [java.time.Duration](https://tutego.de/blog/javainsel/2017/02/java-time-duration.md)
- Next: [Funktion zur String-Ersetzung einsetzen](https://tutego.de/blog/javainsel/2017/02/funktion-zur-string-ersetzung-einsetzen.md)
