Intl.DateTimeFormat

new Intl.DateTimeFormat(locale, options).format(date)

Erstellt einen Formatierer für Datum und Uhrzeit. Die Optionen sind dieselben wie bei toLocaleDateString(); ein Formatierer lässt sich für viele Daten verwenden.

Parameter

  • locale – z. B. 'de-DE'.
  • options – dateStyle, timeStyle oder die einzelnen Teile (day, month, weekday, hour…), timeZone.

Rückgabewert

Ein Formatierer-Objekt mit den Methoden format(), formatToParts(), formatRange() und resolvedOptions().

Beispiele

const f = new Intl.DateTimeFormat('de-DE', { weekday: 'short', day: 'numeric', month: 'long' });
console.log([new Date(2026, 9, 6), new Date(2026, 9, 7)].map((d) => f.format(d)));
const parts = new Intl.DateTimeFormat('de-DE', { month: 'long', year: 'numeric' }).formatToParts(new Date(2026, 2, 15));
console.log(parts.filter((c) => c.type !== 'literal').map((c) => c.value));
const range = new Intl.DateTimeFormat('de-DE', { day: 'numeric', month: 'long' });
console.log(range.formatRange(new Date(2026, 6, 10), new Date(2026, 6, 14)));
console.log(new Intl.DateTimeFormat().resolvedOptions().timeZone);

Ausgabe:

[ 'Di., 6. Oktober', 'Mi., 7. Oktober' ]
[ 'März', '2026' ]
10.–14. Juli
Europe/Prague

Worauf Sie achten sollten

  • Die genaue Form (Leerzeichen, Abkürzungen) stammt aus den Sprachdaten, die jeder Browser in seiner Version hat – sie kann sich zwischen Browsern und ihren Versionen leicht unterscheiden. Das Ergebnis nur zur Anzeige verwenden, nicht zur Weiterverarbeitung.
  • Die Reihenfolge der Teile und die Trennzeichen hängen von der Sprache ab – die formatierte Zeichenkette nicht zerschneiden, sondern formatToParts() verwenden, das jeden Teil mit seinem Typ kennzeichnet (month, literal…).

Browserunterstützung

Baseline – weithin verfügbar: in allen gängigen Browsern seit September 2017, gilt als weithin verfügbar seit März 2020. Ab Version: Chrome 24, Firefox 29, Safari 10; Node.js 0.12.0. Stand: Oktober 2026 (MDN browser-compat-data).

Siehe auch:
Date.prototype.toLocaleDateString()
Date.prototype.toLocaleString()
Intl.RelativeTimeFormat