Signatur
Beschreibung
Temporal.Now.zonedDateTimeISO() liest die aktuelle Systemzeit und liefert sie als Temporal.ZonedDateTime. Dieses Objekt enthält alles in einem: den exakten Zeitpunkt (Nanosekunden seit der Unix-Epoche), die Zeitzone und den ISO-8601-Kalender. Damit ist es der vollständigste „Jetzt“-Wert der Temporal-API.
Wenn Sie keinen Parameter übergeben, wird die aktuelle Systemzeitzone verwendet, also dieselbe wie bei Temporal.Now.timeZoneId(). Übergeben Sie eine IANA-Zeitzonenkennung wie "Europe/Berlin" oder einen festen Versatz wie "+05:30", wird die Uhrzeit für diese Zeitzone berechnet.
Verwenden Sie diese Methode, wenn Sie mit der aktuellen Zeit unter Berücksichtigung der Zeitzone rechnen möchten. Beispiele sind Termine, die über eine Sommerzeitumstellung hinweg geplant werden, die Anzeige der Ortszeit in einer anderen Stadt oder „morgen um dieselbe Uhrzeit“. Bei Arithmetik wie add({ days: 1 }) werden Sommer- und Winterzeitumstellungen korrekt behandelt. Das unterscheidet diese Methode von Temporal.Now.plainDateTimeISO(), die keine Zeitzonen-Information behält.
Brauchen Sie nur einen Zeitstempel, zum Beispiel für Messungen oder zum Speichern, reicht meist Temporal.Now.instant(). Brauchen Sie nur das Datum oder nur die Uhrzeit, nehmen Sie Temporal.Now.plainDateISO() bzw. Temporal.Now.plainTimeISO().
Parameter
| Name | Typ | Default | Beschreibung |
|---|---|---|---|
| $timeZone | string | Temporal.ZonedDateTime | Temporal.Now.timeZoneId() | Die gewünschte Zeitzone: eine IANA-Kennung (z. B. "Europe/Berlin", "UTC") oder ein fester Versatz (z. B. "+01:00"). Übergeben Sie ein Temporal.ZonedDateTime, wird dessen Zeitzone verwendet. Ohne Angabe gilt die Systemzeitzone. |
Rückgabewert
Temporal.ZonedDateTime-Objekt mit dem aktuellen Zeitpunkt in der angegebenen Zeitzone und im Kalender "iso8601".Beispiele
Aktuelle Zeit in der Systemzeitzone
const jetzt = Temporal.Now.zonedDateTimeISO();
console.log(jetzt.toString());
console.log(jetzt.timeZoneId);
console.log(jetzt.calendarId);
Ortszeit in mehreren Städten anzeigen (Weltuhr)
const staedte = {
Berlin: 'Europe/Berlin',
'New York': 'America/New_York',
Tokio: 'Asia/Tokyo',
};
for (const [stadt, zone] of Object.entries(staedte)) {
const zeit = Temporal.Now.zonedDateTimeISO(zone);
const anzeige = zeit.toLocaleString('de-DE', {
hour: '2-digit',
minute: '2-digit',
timeZoneName: 'short',
});
console.log(`${stadt}: ${anzeige}`);
}
Termin morgen zur gleichen Ortszeit (sommerzeitsicher)
const jetzt = Temporal.Now.zonedDateTimeISO('Europe/Berlin');
// add({ days: 1 }) behält die Uhrzeit bei, auch über eine Zeitumstellung hinweg
const morgen = jetzt.add({ days: 1 });
// Zum Vergleich: exakt 24 Stunden später
const in24h = jetzt.add({ hours: 24 });
console.log(morgen.toPlainTime().toString({ smallestUnit: 'minute' }));
console.log(in24h.toPlainTime().toString({ smallestUnit: 'minute' }));
// Kurz vor der Zeitumstellung können die beiden Werte um eine Stunde abweichen
Beginn des heutigen Tages und verbleibende Zeit
const jetzt = Temporal.Now.zonedDateTimeISO();
const tagesbeginn = jetzt.startOfDay();
const morgenFrueh = tagesbeginn.add({ days: 1 });
const rest = jetzt.until(morgenFrueh, { largestUnit: 'hours', smallestUnit: 'minutes' });
console.log(`Noch ${rest.hours} h ${rest.minutes} min bis Mitternacht`);
// Wichtig · Fallstricke
- Browserunterstützung: Temporal gibt es noch nicht in allen Browsern (derzeit z. B. Firefox 139+ und Chrome 144+, Safari noch nicht). Für ältere Umgebungen gibt es Polyfills wie
@js-temporal/polyfillodertemporal-polyfill. Prüfen Sie die Verfügbarkeit mittypeof Temporal !== 'undefined'. - Eine ungültige Zeitzone (z. B.
"Europe/Berlni") löst einenRangeErroraus. EinenTypeErrorerhalten Sie, wenn Sie einen falschen Typ übergeben, etwa eine Zahl. - Übergeben Sie keinen Parameter, hängt das Ergebnis von der Systemzeitzone ab. Auf Servern ist das oft
UTC. Geben Sie die Zeitzone ausdrücklich an, wenn das Ergebnis vorhersagbar sein soll. - Feste Versätze wie
"+01:00"kennen keine Sommerzeit. Für Ortszeiten sollten Sie deshalb IANA-Kennungen verwenden. - Aus Datenschutzgründen (Schutz vor Fingerprinting) können Browser die Zeitauflösung verringern. Die Nachkommastellen sind dann nicht auf die Nanosekunde genau.
- Die Methode gibt immer den ISO-Kalender zurück. Für andere Kalender verwenden Sie
.withCalendar('japanese')o. ä. auf dem Ergebnis.