Start · Sprachen · JavaScript · Referenz · Temporal.Now

Temporal.Now

Klasse

Das <code>Temporal.Now</code>-Namespace-Objekt stellt statische Methoden bereit, um die aktuelle Uhrzeit und das aktuelle Datum in verschiedenen <code>Temporal</code>-Typen abzurufen.

seit JavaScript Stage 3 Proposal (Polyfill erforderlich, noch kein Kategorie: core

Signatur

Temporal.Now

Beschreibung

Temporal.Now ist ein eingebautes Namespace-Objekt der Temporal API, das als Ersatz für Date.now() und new Date() dient. Es bietet mehrere statische Methoden, die jeweils einen anderen Temporal-Typ zurückgeben – je nachdem, ob man ein Datum mit oder ohne Zeitzone, nur die Uhrzeit oder einen Zeitstempel benötigt.

Die Methoden umfassen unter anderem: Temporal.Now.instant() (gibt ein Temporal.Instant zurück, ähnlich einem Unix-Zeitstempel), Temporal.Now.zonedDateTimeISO() (gibt ein Temporal.ZonedDateTime mit der lokalen oder einer angegebenen Zeitzone zurück), Temporal.Now.plainDateTimeISO() (gibt ein Temporal.PlainDateTime ohne Zeitzoneninfo zurück) sowie Temporal.Now.plainDateISO() und Temporal.Now.plainTimeISO() für nur Datum bzw. nur Uhrzeit.

Temporal.Now selbst ist kein Konstruktor und kann nicht instanziiert werden. Es dient ausschließlich als Einstiegspunkt zu den statischen Fabrikmethoden. Die Wahl der richtigen Methode hängt davon ab, ob die Zeitzone für die Anwendung relevant ist: Für Anzeigen in der lokalen Zeitzone eignet sich zonedDateTimeISO(), für reine UTC-Zeitstempel instant().

Da sich die Temporal API noch im TC39-Stage-3-Prozess befindet (Stand 2024), ist ein Polyfill wie @js-temporal/polyfill für den produktiven Einsatz notwendig. Native Unterstützung ist in modernen Browsern in Vorbereitung.

Rückgabewert

Typ
void
Beschreibung
Temporal.Now ist ein Namespace-Objekt und kein Konstruktor. Es hat keinen Rückgabewert – die einzelnen statischen Methoden geben jeweils einen bestimmten Temporal-Typ zurück.

Beispiele

Aktuellen Zeitstempel als Temporal.Instant abrufen

// Polyfill importieren (falls noch kein nativer Support)
import { Temporal } from '@js-temporal/polyfill';

// Absoluter Zeitstempel, ähnlich wie Date.now()
const now = Temporal.Now.instant();
console.log(now.toString());
// z. B. "2024-06-15T10:30:00.123456789Z"

// Verglichene Epochenzeit in Millisekunden
console.log(now.epochMilliseconds);
// z. B. 1718447400123
2024-06-15T10:30:00.123456789Z 1718447400123

Aktuelles Datum und Uhrzeit mit Zeitzone abrufen

import { Temporal } from '@js-temporal/polyfill';

// Lokale Zeitzone des Systems verwenden
const localNow = Temporal.Now.zonedDateTimeISO();
console.log(localNow.toString());
// z. B. "2024-06-15T12:30:00.123456789+02:00[Europe/Berlin]"

// Bestimmte Zeitzone explizit angeben
const tokyoNow = Temporal.Now.zonedDateTimeISO('Asia/Tokyo');
console.log(tokyoNow.toString());
// z. B. "2024-06-15T19:30:00.123456789+09:00[Asia/Tokyo]"

// Nur das aktuelle Datum (ohne Uhrzeit) in lokaler Zeitzone
const today = Temporal.Now.plainDateISO();
console.log(today.toString());
// z. B. "2024-06-15"

// Nur die aktuelle Uhrzeit (ohne Datum)
const time = Temporal.Now.plainTimeISO();
console.log(time.toString());
// z. B. "12:30:00.123456789"
2024-06-15T12:30:00.123456789+02:00[Europe/Berlin] 2024-06-15T19:30:00.123456789+09:00[Asia/Tokyo] 2024-06-15 12:30:00.123456789

// Wichtig · Fallstricke

Browser-Kompatibilität: Die Temporal API ist noch nicht nativ in allen Browsern verfügbar (Stand 2024). Für den Einsatz in Produktion oder beim Testen ist das Polyfill-Paket @js-temporal/polyfill empfohlen. Native Implementierungen sind in V8 und SpiderMonkey in Arbeit.

Zeitzonensensitivität: Temporal.Now.plainDateTimeISO() und Temporal.Now.plainDateISO() verwenden intern die systemlokale Zeitzone. Um explizit UTC zu nutzen, sollte stattdessen Temporal.Now.instant() verwendet werden.

Kein Konstruktor: new Temporal.Now() wirft einen TypeError. Das Objekt ist einzig für den Aufruf statischer Methoden gedacht.

Präzision: Im Unterschied zu Date.now() liefert die Temporal API Nanosekunden-Genauigkeit, sofern die Plattform dies unterstützt.