Start · Sprachen · JavaScript · Referenz · Temporal.PlainTime.prototype.toJSON()

Temporal.PlainTime.prototype.toJSON()

Methode

Gibt die Uhrzeit als String im RFC-9557-/ISO-8601-Format zurück, genau wie <code>toString()</code> ohne Optionen. <code>JSON.stringify()</code> ruft die Methode automatisch auf.

seit JavaScript Temporal (Stage 3 / ES2026-Kandidat); Firefox 139+ Kategorie: method-property

Signatur

Temporal.PlainTime.prototype.toJSON()

Beschreibung

Die Methode toJSON() einer Temporal.PlainTime-Instanz gibt die Uhrzeit als String zurück, zum Beispiel "14:30:00" oder "09:05:07.123456789". Das Ergebnis ist identisch mit dem Aufruf von toString() ohne Argumente. Sekunden werden immer ausgegeben. Nachkommastellen erscheinen nur, wenn sie ungleich null sind, und zwar ohne Nullen am Ende.

Meist ruft man toJSON() nicht selbst auf. JSON.stringify() ruft die Methode automatisch auf, sobald ein PlainTime-Objekt in einer Datenstruktur vorkommt. So lassen sich Uhrzeiten ohne Zusatzaufwand in JSON umwandeln, etwa für REST-APIs, localStorage oder Konfigurationsdateien.

Die Umwandlung funktioniert nur in eine Richtung: JSON.parse() erzeugt kein Temporal.PlainTime-Objekt zurück. Dafür braucht man eine Reviver-Funktion, die Temporal.PlainTime.from() aufruft. Wer das Ausgabeformat steuern will, zum Beispiel ohne Sekunden, nimmt stattdessen toString(options).

Rückgabewert

Typ
string
Beschreibung
Die Uhrzeit im Format HH:MM:SS[.fffffffff] nach RFC 9557 bzw. ISO 8601, also dasselbe Ergebnis wie toString().

Beispiele

Direkter Aufruf

const zeit = Temporal.PlainTime.from('08:15');
console.log(zeit.toJSON());

const genau = Temporal.PlainTime.from({ hour: 23, minute: 59, second: 59, millisecond: 500 });
console.log(genau.toJSON());
08:15:00 23:59:59.5

Automatische Serialisierung mit JSON.stringify()

const oeffnungszeiten = {
  laden: 'Filiale Mitte',
  oeffnet: Temporal.PlainTime.from('09:00'),
  schliesst: Temporal.PlainTime.from('18:30'),
};

console.log(JSON.stringify(oeffnungszeiten));
{"laden":"Filiale Mitte","oeffnet":"09:00:00","schliesst":"18:30:00"}

Rückweg mit Reviver-Funktion in JSON.parse()

const json = '{"termin":"Stand-up","beginn":"10:00:00"}';

const daten = JSON.parse(json, (key, value) =>
  key === 'beginn' ? Temporal.PlainTime.from(value) : value
);

console.log(daten.beginn instanceof Temporal.PlainTime);
console.log(daten.beginn.add({ minutes: 15 }).toString());
true 10:15:00

Eigenes Format statt toJSON()

const zeit = Temporal.PlainTime.from('07:45:30.250');

// toJSON() gibt immer das Standardformat aus
console.log(zeit.toJSON());

// Für ein anderes Format toString() mit Optionen verwenden
console.log(zeit.toString({ smallestUnit: 'minute' }));
07:45:30.25 07:45

// Wichtig · Fallstricke

  • Nur eine Richtung: JSON.parse() gibt einen einfachen String zurück, kein PlainTime-Objekt. Für den Rückweg braucht man einen Reviver mit Temporal.PlainTime.from().
  • Keine Optionen: toJSON() nimmt keine Argumente entgegen. Argumente, die JSON.stringify() intern übergibt (etwa den Schlüssel), werden ignoriert. Für Rundung oder eine feste Zahl von Nachkommastellen toString({ fractionalSecondDigits, smallestUnit, roundingMode }) verwenden.
  • Keine Zeitzone und kein Datum: Der String ist eine reine Uhrzeit. Wenn der Empfänger einen Zeitpunkt erwartet, besser Temporal.ZonedDateTime oder Temporal.Instant verwenden.
  • Nicht mit dem Vergleichsoperator vergleichen: Beim Vergleich mit < bzw. > wirft valueOf() einen TypeError. Für Vergleiche Temporal.PlainTime.compare() verwenden.
  • Browser-Unterstützung: Temporal ist noch nicht in allen Umgebungen verfügbar: in Firefox ab 139 und Chrome ab 144, Safari bisher nur experimentell. Für breite Unterstützung einen Polyfill wie @js-temporal/polyfill oder temporal-polyfill einsetzen.