Die Methode Date.prototype.toLocaleDateString() gibt den Datumsanteil eines Date-Objekts als lokalisierten String zurück – also in einem Format, das der Sprache und Region des Nutzers entspricht. Sie ist die richtige Wahl für alle nutzersichtbaren Datumsausgaben, da sie automatisch Sprachkonventionen, Datumsreihenfolge (DD.MM.YYYY vs. MM/DD/YYYY) und Zeichensetzung berücksichtigt. Über optionale Parameter lässt sich das Format zusätzlich fein justieren.

Funktionsweise

Die Methode delegiert intern an Intl.DateTimeFormat, ist aber kompakter zu schreiben, wenn nur ein einzelnes Datum formatiert werden soll. Für viele Daten in Folge (z. B. in einer Tabelle) ist Intl.DateTimeFormat performanter, da der Formatter nur einmal erzeugt wird.

Die Locale steuert:

  • Reihenfolge der Komponenten (Tag/Monat/Jahr).
  • Trennzeichen (Punkt, Schrägstrich, Bindestrich, Leerzeichen).
  • Sprache der Monats- und Wochentagsnamen.
  • Kalender-System (Gregorian, Buddhist, Hebrew etc.).

Syntax

JavaScript Syntax
date.toLocaleDateString()
date.toLocaleDateString(locales)
date.toLocaleDateString(locales, options)
Parameter
locales

(Optional) Ein BCP-47-Sprachcode (z. B. "de-DE", "en-US") oder ein Array davon. Ohne Angabe wird die Default-Locale des Systems verwendet.

options

(Optional) Ein Objekt mit Formatierungsoptionen:

  • dateStyle: "full" | "long" | "medium" | "short" – Kurzform.
  • weekday, year, month, day: "numeric" | "2-digit" | "long" | "short" | "narrow" – feinere Kontrolle.
  • timeZone: Zeitzone (z. B. "UTC", "Europe/Berlin").
  • calendar: Kalendersystem.

Rückgabewert

Ein lokalisierter String, der das Datum repräsentiert.

Beispiele

Standard-Ausgabe in deutscher Locale

JavaScript Beispiel
const date = new Date("2026-05-01");
console.log(date.toLocaleDateString("de-DE"));
Output
1.5.2026

Vergleich verschiedener Locales

JavaScript Beispiel
const date = new Date("2026-05-01");

console.log(date.toLocaleDateString("de-DE"));
console.log(date.toLocaleDateString("en-US"));
console.log(date.toLocaleDateString("en-GB"));
console.log(date.toLocaleDateString("ja-JP"));
Output
1.5.2026
5/1/2026
01/05/2026
2026/5/1

Langform mit Wochentag

JavaScript Beispiel
const date = new Date("2026-05-01");
const text = date.toLocaleDateString("de-DE", {
    weekday: "long",
    year: "numeric",
    month: "long",
    day: "numeric"
});

console.log(text);
Output
Freitag, 1. Mai 2026

dateStyle als Kurzform

JavaScript Beispiel
const date = new Date("2026-05-01");

console.log(date.toLocaleDateString("de-DE", { dateStyle: "full" }));
console.log(date.toLocaleDateString("de-DE", { dateStyle: "long" }));
console.log(date.toLocaleDateString("de-DE", { dateStyle: "medium" }));
console.log(date.toLocaleDateString("de-DE", { dateStyle: "short" }));
Output
Freitag, 1. Mai 2026
1. Mai 2026
01.05.2026
01.05.26

Spezifische Zeitzone

JavaScript Beispiel
const date = new Date("2026-05-01T23:30:00Z");

console.log(date.toLocaleDateString("de-DE", { timeZone: "UTC" }));
console.log(date.toLocaleDateString("de-DE", { timeZone: "Europe/Berlin" }));
console.log(date.toLocaleDateString("de-DE", { timeZone: "America/Los_Angeles" }));
Output
1.5.2026
2.5.2026
1.5.2026

Hinweise & verwandte Methoden

  • Für viele Datumsformatierungen in Folge ist Intl.DateTimeFormat performanter, weil der Formatter nur einmal angelegt werden muss.
  • Für Datum + Uhrzeit: Date.prototype.toLocaleString().
  • Für nur Uhrzeit: Date.prototype.toLocaleTimeString().
  • Die Default-Locale (ohne locales-Argument) hängt vom System ab und kann auf Servern unerwartete Werte haben – immer explizit angeben, wenn das Format reproduzierbar sein soll.
  • Für maschinenlesbare Ausgaben in Backends oder APIs sollte toISOString() statt einer lokalisierten Variante verwendet werden.
/ Weiter

Zurück zu Date

Zur Übersicht