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

Temporal.Now.plainDateTimeISO()

Methode

Gibt das aktuelle Datum mit Uhrzeit als <code>Temporal.PlainDateTime</code> im ISO-8601-Kalender zurück, entweder für die Systemzeitzone oder für eine angegebene Zeitzone.

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

Signatur

Temporal.Now.plainDateTimeISO(timeZone)

Beschreibung

Temporal.Now.plainDateTimeISO() liest die aktuelle Systemzeit aus und rechnet sie in die „Wanduhrzeit“ einer Zeitzone um. Das Ergebnis ist ein Temporal.PlainDateTime, also Datum und Uhrzeit (bis auf die Nanosekunde genau) ohne Zeitzonen- oder Offset-Angabe. Als Kalender wird immer iso8601 verwendet.

Die Methode eignet sich, wenn man die lokale Zeit anzeigen, formatieren oder mit anderen „zeitzonenlosen“ Werten vergleichen will, z. B. „Ist es schon nach 18 Uhr?“ oder „Welches Datum und welche Uhrzeit sind es gerade in Tokio?“. Ohne Argument wird die Zeitzone der Umgebung benutzt (siehe Temporal.Now.timeZoneId()).

Weil ein PlainDateTime nicht weiß, zu welcher Zeitzone es gehört, taugt es nur bedingt für Rechnungen über Sommerzeitwechsel hinweg oder zum Speichern eines genauen Zeitpunkts. Dafür nimmt man besser Temporal.Now.zonedDateTimeISO() oder Temporal.Now.instant().

Parameter

Name Typ Default Beschreibung
$timeZone string | Temporal.ZonedDateTime Temporal.Now.timeZoneId() Zeitzone, in die umgerechnet wird: ein IANA-Bezeichner wie "Europe/Berlin", "UTC", ein fester Offset wie "+05:30" oder ein Temporal.ZonedDateTime, dessen Zeitzone übernommen wird. Fehlt der Wert, wird die Systemzeitzone verwendet.

Rückgabewert

Typ
Temporal.PlainDateTime
Beschreibung
Ein neues Temporal.PlainDateTime mit dem aktuellen Datum und der aktuellen Uhrzeit in der gewählten Zeitzone, im ISO-8601-Kalender.

Beispiele

Aktuelle lokale Zeit auslesen

const jetzt = Temporal.Now.plainDateTimeISO();
console.log(jetzt.toString());
console.log(`${jetzt.day}.${jetzt.month}.${jetzt.year}, ${jetzt.hour}:${String(jetzt.minute).padStart(2, '0')} Uhr`);
2025-06-14T15:42:07.318123456 14.6.2025, 15:42 Uhr

Wanduhrzeit in anderen Zeitzonen

const zonen = ['Europe/Berlin', 'America/New_York', 'Asia/Tokyo', 'UTC'];
for (const zone of zonen) {
  const zeit = Temporal.Now.plainDateTimeISO(zone);
  console.log(zone.padEnd(18), zeit.toString({ smallestUnit: 'minute' }));
}
Europe/Berlin 2025-06-14T15:42 America/New_York 2025-06-14T09:42 Asia/Tokyo 2025-06-14T22:42 UTC 2025-06-14T13:42

Prüfen, ob Geschäftszeiten sind

const istGeoeffnet = (zone = 'Europe/Berlin') => {
  const jetzt = Temporal.Now.plainDateTimeISO(zone);
  const werktag = jetzt.dayOfWeek <= 5; // 1 = Montag … 7 = Sonntag
  const oeffnung = Temporal.PlainTime.from('09:00');
  const schluss = Temporal.PlainTime.from('18:00');
  const uhrzeit = jetzt.toPlainTime();
  return werktag &&
    Temporal.PlainTime.compare(uhrzeit, oeffnung) >= 0 &&
    Temporal.PlainTime.compare(uhrzeit, schluss) < 0;
};
console.log(istGeoeffnet() ? 'Wir sind erreichbar.' : 'Außerhalb der Geschäftszeiten.');
Außerhalb der Geschäftszeiten.

Countdown bis zu einem lokalen Termin

const feierabend = Temporal.Now.plainDateTimeISO()
  .with({ hour: 17, minute: 0, second: 0, millisecond: 0, microsecond: 0, nanosecond: 0 });
const rest = Temporal.Now.plainDateTimeISO().until(feierabend, { largestUnit: 'hour', smallestUnit: 'minute' });
console.log(`Noch ${rest.hours} h ${rest.minutes} min bis Feierabend`);
Noch 1 h 17 min bis Feierabend

// Wichtig · Fallstricke

  • Kompatibilität: Temporal ist noch neu. Firefox (ab 139) und Chrome (ab 144) unterstützen es, Safari und ältere Node.js-Versionen nicht. Für den Produktiveinsatz den Polyfill @js-temporal/polyfill oder temporal-polyfill einbinden oder vorher mit typeof Temporal !== 'undefined' prüfen.
  • Keine Zeitzone im Ergebnis: Der zurückgegebene Wert „vergisst“ die Zeitzone. Rechnungen wie add({ hours: 24 }) beachten keine Sommerzeitumstellung. Für genaue Zeitpunkte besser Temporal.Now.zonedDateTimeISO() verwenden.
  • Eine ungültige Zeitzonen-Angabe (z. B. \"Europe/Berlinn\") wirft einen RangeError, ein falscher Typ (z. B. eine Zahl) einen TypeError.
  • Browser können die Genauigkeit der Zeit aus Datenschutzgründen senken (Schutz vor Timing-Angriffen und Fingerprinting). Die Nanosekunden sind daher meist nicht wirklich genau.
  • Jeder Aufruf liest die Uhr neu aus. Wer mehrere Werte aus derselben „Jetzt“-Zeit braucht, sollte das Ergebnis einmal in einer Variable speichern.
  • Für einen anderen Kalender als ISO wandelt man das Ergebnis mit .withCalendar('japanese') o. Ä. um.