Die Methode Date.prototype.toISOString() gibt ein Date-Objekt als ISO-8601-konformen String in UTC zurück – z. B. 2026-05-01T14:30:00.000Z. Das Z am Ende kennzeichnet den UTC-Offset (Zulu Time). Dieses Format ist die De-facto-Standard-Repräsentation von Zeitstempeln in JSON, REST-APIs, Logs und Datenbanken. Sie ist die richtige Wahl, sobald Daten persistiert oder zwischen Systemen ausgetauscht werden müssen.
Funktionsweise
Das Format ist auf einen festen Aufbau festgelegt:
YYYY-MM-DDTHH:mm:ss.sssZ
- YYYY: Jahr, mindestens 4-stellig (für sehr ferne Vergangenheit/Zukunft erweitert auf 6 Stellen mit Vorzeichen).
- MM, DD: 2-stellig.
- T: Trenner zwischen Datum und Zeit.
- HH, mm, ss: 2-stellig.
- sss: Millisekunden, immer 3-stellig.
- Z: UTC-Marker.
Die Ausgabe ist immer in UTC – die lokale Zeitzone wird ignoriert. Bei einem ungültigen Date-Objekt wirft die Methode einen RangeError (im Gegensatz zu vielen anderen Date-Methoden, die NaN/"Invalid Date" liefern).
Syntax
date.toISOString()Die Methode erwartet keine Parameter.
Rückgabewert
Ein String im ISO-8601-Format: YYYY-MM-DDTHH:mm:ss.sssZ. Bei einem ungültigen Date-Objekt wird ein RangeError geworfen.
Beispiele
Standardausgabe
const date = new Date("2026-05-01T14:30:00.250Z");
console.log(date.toISOString());2026-05-01T14:30:00.250ZLokale Zeit wird in UTC umgerechnet
// 14:30 Uhr in MESZ (UTC+2)
const date = new Date("2026-05-01T14:30:00+02:00");
console.log(date.toISOString());2026-05-01T12:30:00.000ZDatumsanteil extrahieren
Praktisch für Dateinamen oder Datenbank-Abfragen.
const date = new Date("2026-05-01T14:30:00Z");
console.log(date.toISOString().slice(0, 10));2026-05-01Round-Trip mit Date.parse()
Ein über toISOString() serialisiertes Datum lässt sich verlustfrei wieder einlesen.
const original = new Date("2026-05-01T14:30:00.250Z");
const serialized = original.toISOString();
const wieder = new Date(serialized);
console.log(original.getTime() === wieder.getTime());trueFehler bei ungültigem Datum
const invalid = new Date("kein Datum");
try {
invalid.toISOString();
} catch (err) {
console.log(err.name, err.message);
}RangeError Invalid time valueHinweise & verwandte Methoden
Date.prototype.toJSON()ruft interntoISOString()auf – beimJSON.stringify()einer Date-Instanz wird automatisch das ISO-Format verwendet.- Für lokalisierte Anzeigen ist
Intl.DateTimeFormatdie richtige Wahl. - Im Gegensatz zu den meisten Date-Methoden wirft
toISOString()bei einem ungültigen Date eine Exception stattNaNzurückzugeben – Aufrufe sollten also gegebenenfalls in einentry/catch-Block oder eine Vorab-Validierung mitNumber.isNaN(date.getTime())eingebettet werden. - Das Format ist mit ISO 8601 kompatibel, aber die Sekundenbruchteile sind immer 3-stellig (Millisekunden) – andere Auflösungen sind nicht möglich.