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

Temporal.Now.plainTimeISO()

Methode

Gibt die aktuelle Uhrzeit (ohne Datum) als <code>Temporal.PlainTime</code> im ISO-8601-Kalender zurück, wahlweise in einer bestimmten Zeitzone.

seit JavaScript ES2026 (Temporal, Stage 4); Firefox 139+, Chrome 1 Kategorie: method-property

Signatur

Temporal.Now.plainTimeISO(timeZone)

Beschreibung

Temporal.Now.plainTimeISO() liest die aktuelle Systemzeit und gibt davon nur die Wanduhrzeit zurück, also Stunde, Minute, Sekunde und Sekundenbruchteile bis auf Nanosekunden, als Temporal.PlainTime. Datum, Zeitzone und Offset gehören nicht zum Ergebnis.

Ohne Argument gilt die Systemzeitzone der Laufzeitumgebung (Temporal.Now.timeZoneId()). Wenn du eine IANA-Zeitzonen-ID wie "Europe/Berlin" oder einen Offset wie "+05:30" übergibst, bekommst du die Uhrzeit, die dort gerade auf der Uhr steht. Das ist praktisch für Anzeigen wie „Ortszeit in Tokio“ oder für Prüfungen wie „Hat der Laden gerade geöffnet?“.

Eine PlainTime gehört zu keinem Zeitpunkt auf der Zeitachse. Sie eignet sich zum Vergleichen mit festen Uhrzeiten (Temporal.PlainTime.compare()), zum Rechnen mit Dauern (add(), until()) und zum Formatieren. Zum Speichern von Zeitpunkten oder Messen von Zeitspannen über Mitternacht hinweg nimmst du besser Temporal.Now.instant() oder Temporal.Now.zonedDateTimeISO().

Parameter

Name Typ Default Beschreibung
$timeZone string | Temporal.ZonedDateTime Temporal.Now.timeZoneId() Zeitzone, in der die aktuelle Uhrzeit bestimmt wird: IANA-ID (z. B. "America/New_York"), "UTC", Offset-String (z. B. "-03:00") oder ein Temporal.ZonedDateTime, dessen Zeitzone dann verwendet wird.

Rückgabewert

Typ
Temporal.PlainTime
Beschreibung
Die aktuelle Wanduhrzeit in der angegebenen Zeitzone (bzw. der Systemzeitzone) als Temporal.PlainTime, genau bis auf Nanosekunden (tatsächliche Auflösung hängt von der Umgebung ab).

Beispiele

Aktuelle Uhrzeit in der Systemzeitzone

const jetzt = Temporal.Now.plainTimeISO();
console.log(jetzt.toString());
// Auf Minuten gerundet ausgeben
console.log(jetzt.toString({ smallestUnit: 'minute' }));
14:32:07.123456789 14:32

Weltzeituhr für mehrere Städte

const staedte = {
  Berlin: 'Europe/Berlin',
  'New York': 'America/New_York',
  Tokio: 'Asia/Tokyo',
  UTC: 'UTC'
};

for (const [stadt, zone] of Object.entries(staedte)) {
  const zeit = Temporal.Now.plainTimeISO(zone);
  console.log(`${stadt.padEnd(9)} ${zeit.toString({ smallestUnit: 'minute' })}`);
}
Berlin 14:32 New York 08:32 Tokio 21:32 UTC 12:32

Öffnungszeiten prüfen

const oeffnet = Temporal.PlainTime.from('09:00');
const schliesst = Temporal.PlainTime.from('18:30');

const istGeoeffnet = (zone = 'Europe/Berlin') => {
  const jetzt = Temporal.Now.plainTimeISO(zone);
  return Temporal.PlainTime.compare(jetzt, oeffnet) >= 0 &&
         Temporal.PlainTime.compare(jetzt, schliesst) < 0;
};

console.log(istGeoeffnet() ? 'Geöffnet' : 'Geschlossen');
Geöffnet

Zeit bis Feierabend berechnen

const feierabend = Temporal.PlainTime.from('17:00');
const jetzt = Temporal.Now.plainTimeISO();

if (Temporal.PlainTime.compare(jetzt, feierabend) < 0) {
  const rest = jetzt.until(feierabend, { largestUnit: 'hour', smallestUnit: 'minute' });
  console.log(`Noch ${rest.hours} h ${rest.minutes} min bis Feierabend`);
} else {
  console.log('Feierabend!');
}
Noch 2 h 27 min bis Feierabend

// Wichtig · Fallstricke

  • Kompatibilität: Temporal ist erst seit Kurzem in Browsern verfügbar (Firefox 139+, Chrome 144+). Safari und ältere Node.js-Versionen unterstützen es noch nicht. Prüfe das mit typeof Temporal !== 'undefined' und lade bei Bedarf ein Polyfill wie @js-temporal/polyfill oder temporal-polyfill.
  • Kein Datum: Rechnungen mit PlainTime laufen um Mitternacht über (23:30 + 1 h = 00:30). Die Information, dass der Tag gewechselt hat, geht dabei verloren. Für Spannen über mehrere Tage nimm Temporal.Now.plainDateTimeISO() oder zonedDateTimeISO().
  • Keine Zeitmessung: Um Laufzeiten zu messen, nimm performance.now() oder Temporal.Now.instant(). Wanduhrzeiten springen bei Sommerzeitumstellungen und wenn die Systemuhr neu eingestellt wird.
  • Eine ungültige Zeitzonen-ID löst einen RangeError aus, ein falscher Typ (z. B. eine Zahl) einen TypeError.
  • Datenschutz: Browser können die Genauigkeit reduzieren, um Fingerprinting und Timing-Angriffe zu erschweren. Die Nachkommastellen sind dann gerundet.
  • Die Methode heißt plainTimeISO, weil sie immer den ISO-8601-Kalender verwendet. Eine Variante plainTime() mit Kalender-Parameter gibt es nicht mehr.