Signatur
Beschreibung
Temporal.Now.instant() ist eine statische Methode des Namensraum-Objekts Temporal.Now. Sie liest die aktuelle Systemzeit und gibt sie als Temporal.Instant zurück. Das ist ein fester Punkt auf der Zeitachse, gemessen in Nanosekunden seit der Unix-Epoche (1. Januar 1970, 00:00 UTC). Zeitzone und Kalender gehören nicht dazu.
Die Methode ist das moderne Gegenstück zu Date.now() bzw. new Date(). Sie passt überall dort, wo es um den exakten Zeitpunkt geht, etwa bei Zeitstempeln für Logs, Datenbankeinträgen, Ablaufzeiten von Tokens oder bei Zeitdifferenzen zwischen zwei Ereignissen. Für die Anzeige in einer Ortszeit wandeln Sie den Wert mit instant.toZonedDateTimeISO(zeitzone) um.
Anders als Date ist ein Temporal.Instant unveränderlich. Methoden wie add() oder round() ändern das Objekt nicht, sondern geben ein neues zurück. Die interne Auflösung liegt bei Nanosekunden (epochNanoseconds ist ein BigInt). Wie genau der Wert tatsächlich ist, hängt vom Browser und von der Plattform ab.
Rückgabewert
Temporal.Instant mit dem aktuellen Zeitpunkt der Systemuhr. Die Methode erwartet keine Parameter.Beispiele
Aktuellen Zeitstempel ausgeben
const jetzt = Temporal.Now.instant();
console.log(jetzt.toString()); // ISO-8601 in UTC
console.log(jetzt.epochMilliseconds); // wie Date.now()
console.log(typeof jetzt.epochNanoseconds);
Laufzeit einer asynchronen Operation messen
const start = Temporal.Now.instant();
await new Promise((resolve) => setTimeout(resolve, 250));
const dauer = Temporal.Now.instant().since(start);
console.log(`Dauer: ${dauer.total('milliseconds').toFixed(0)} ms`);
Ablaufzeit für ein Token berechnen und prüfen
const ausgestellt = Temporal.Now.instant();
const ablauf = ausgestellt.add({ minutes: 15 });
const istAbgelaufen = (zeitpunkt) =>
Temporal.Instant.compare(Temporal.Now.instant(), zeitpunkt) >= 0;
console.log(ablauf.toString({ smallestUnit: 'second' }));
console.log(istAbgelaufen(ablauf));
Zeitpunkt in einer bestimmten Zeitzone anzeigen
const jetzt = Temporal.Now.instant();
const berlin = jetzt.toZonedDateTimeISO('Europe/Berlin');
console.log(berlin.toLocaleString('de-DE', {
dateStyle: 'medium',
timeStyle: 'short'
}));
// Wichtig · Fallstricke
- Browser-Unterstützung: Temporal ist erst seit Kurzem in Browsern verfügbar (Firefox 139+, Chromium 144+). In Safari und älteren Umgebungen brauchen Sie einen Polyfill wie
@js-temporal/polyfillodertemporal-polyfill. Vorher prüfen:typeof Temporal !== 'undefined'. - Keine monotone Uhr: Der Wert stammt aus der Systemuhr. Sie kann durch NTP-Abgleich oder manuelle Änderungen springen. Für präzise Performance-Messungen ist
performance.now()besser geeignet. - Reduzierte Genauigkeit: Browser runden die Zeit oft oder versehen sie mit Rauschen, um Timing-Angriffe (z. B. Spectre) oder Fingerprinting zu erschweren. Die Nanosekunden-Stellen sind deshalb häufig nicht aussagekräftig.
- Keine Zeitzone:
toString()gibt immer UTC mitZaus. Für Datum oder Uhrzeit in Ortszeit nutzen SieTemporal.Now.zonedDateTimeISO()odertoZonedDateTimeISO(). epochNanosecondsist einBigIntund lässt sich nicht direkt mitNumber-Werten verrechnen.- Kein Konstruktor:
new Temporal.Now.instant()wirft einenTypeError.