Start · Sprachen · JavaScript · Referenz · Temporal.Now.instant()

Temporal.Now.instant()

Methode

Gibt den aktuellen Zeitpunkt der Systemuhr als <code>Temporal.Instant</code> zurück, also einen exakten Moment ohne Zeitzone und Kalender, in Nanosekunden-Auflösung.

seit JavaScript ES2026 (Temporal); Firefox 139+, Chrome 144+, Safa Kategorie: method-property

Signatur

Temporal.Now.instant()

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

Typ
Temporal.Instant
Beschreibung
Ein neues 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);
2025-06-14T09:41:27.123456789Z 1749894087123 bigint

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`);
Dauer: 251 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));
2025-06-14T09:56:27Z false

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'
}));
14.06.2025, 11:41

// 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/polyfill oder temporal-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 mit Z aus. Für Datum oder Uhrzeit in Ortszeit nutzen Sie Temporal.Now.zonedDateTimeISO() oder toZonedDateTimeISO().
  • epochNanoseconds ist ein BigInt und lässt sich nicht direkt mit Number-Werten verrechnen.
  • Kein Konstruktor: new Temporal.Now.instant() wirft einen TypeError.