Die Methode Date.prototype.toTemporalInstant() ist die Brücke vom alten Date-Objekt zur modernen Temporal-API. Sie wandelt eine Date-Instanz in ein Temporal.Instant um – einen unveränderlichen Zeitpunkt mit Nanosekunden-Auflösung. Die Temporal-API ist der lange erwartete Nachfolger des problematischen Date-Objekts und behebt zentrale Mängel: Immutability, exakte Zeitzonen-Behandlung, klare Trennung von „Wandzeit” und „Instant”, und keine 0-basierten Monate.
Funktionsweise
Die Methode liefert einen Temporal.Instant, der denselben absoluten Zeitpunkt repräsentiert wie das ursprüngliche Date-Objekt – allerdings mit erhöhter Präzision (intern Nanosekunden statt Millisekunden). Im Gegensatz zu Date sind Temporal-Objekte unveränderlich: jede Mutation liefert ein neues Objekt.
Wichtig: Die Temporal-API ist Stage 3 im TC39-Prozess und wird derzeit (Stand 2026) in modernen Browsern und Node.js Schritt für Schritt aktiviert. In Umgebungen ohne nativen Support kann das offizielle Polyfill (@js-temporal/polyfill) eingesetzt werden. In manchen Umgebungen ist die Methode noch nicht verfügbar – ein Feature-Check via typeof Date.prototype.toTemporalInstant === "function" ist sinnvoll.
Syntax
date.toTemporalInstant()Die Methode erwartet keine Parameter.
Rückgabewert
Eine Temporal.Instant-Instanz, die denselben absoluten Zeitpunkt repräsentiert.
Beispiele
Konvertierung von Date in Temporal.Instant
const date = new Date("2026-05-01T14:30:00.250Z");
const instant = date.toTemporalInstant();
console.log(instant.toString());2026-05-01T14:30:00.25ZMit Zeitzone in ZonedDateTime umwandeln
Temporal.Instant ist zeitzonenneutral – mit toZonedDateTimeISO() lässt es sich in einer konkreten Zeitzone interpretieren.
const date = new Date("2026-05-01T14:30:00Z");
const zoned = date.toTemporalInstant().toZonedDateTimeISO("Europe/Berlin");
console.log(zoned.toString());2026-05-01T16:30:00+02:00[Europe/Berlin]Arithmetik ohne Mutation
Im Gegensatz zu Date sind Temporal-Operationen unveränderlich.
const original = new Date("2026-05-01T00:00:00Z").toTemporalInstant();
const spaeter = original.add({ hours: 36 });
console.log(original.toString());
console.log(spaeter.toString());2026-05-01T00:00:00Z
2026-05-02T12:00:00ZFeature-Detection
const verfuegbar = typeof Date.prototype.toTemporalInstant === "function";
console.log(`Temporal verfügbar: ${verfuegbar}`);Temporal verfügbar: trueHinweise & verwandte Methoden
- Die Temporal-API ist der moderne Ersatz für das Date-Objekt. Wer neue Codebases startet, sollte direkt mit Temporal arbeiten – Date ist primär für Interop und Legacy-Code da.
- Für Umgebungen ohne native Temporal-Unterstützung:
@js-temporal/polyfill(offizielles Polyfill). Temporal.Instantrepräsentiert einen absoluten Zeitpunkt ohne Zeitzone – für „Wandzeit”-Operationen wie „nächster Montag in Berlin” wirdTemporal.ZonedDateTimeverwendet.- Die Präzision steigt von Millisekunden (Date) auf Nanosekunden (Temporal) – beim Hin- und Herkonvertieren wird die zusätzliche Präzision aber natürlich nicht gewonnen, da Date sie nicht hat.
- Verwandte Methoden in Temporal:
Temporal.Now.instant(),Temporal.Instant.from(),Temporal.Instant.fromEpochMilliseconds().