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

Temporal.PlainTime.prototype.toString()

Methode

Gibt die Uhrzeit eines <code>Temporal.PlainTime</code> als String im RFC 9557-/ISO 8601-Format zurück, z. B. <code>"14:30:05.25"</code>, auf Wunsch gerundet.

seit JavaScript ES2026 (Temporal) – Firefox 139+, Chrome/Edge 144+ Kategorie: method-property

Signatur

Temporal.PlainTime.prototype.toString(options)

Beschreibung

Die Methode toString() wandelt ein Temporal.PlainTime-Objekt in einen String der Form HH:mm:ss um, bei Bedarf mit Sekundenbruchteilen (HH:mm:ss.fffffffff). Das Format entspricht RFC 9557 bzw. ISO 8601. Deshalb eignet sich der String zum Speichern, zur Übertragung in JSON oder APIs und zum erneuten Einlesen mit Temporal.PlainTime.from().

Mit dem optionalen options-Objekt legst du fest, wie genau die Ausgabe ist. Du kannst eine feste Zahl an Nachkommastellen verlangen (fractionalSecondDigits), die kleinste Einheit angeben (smallestUnit, z. B. nur Stunden und Minuten) und bestimmen, wie gerundet wird (roundingMode). Ohne Optionen werden die Sekunden immer ausgegeben. Sekundenbruchteile erscheinen nur, wenn sie ungleich null sind, und zwar ohne Nullen am Ende.

Für Texte, die Nutzer lesen, ist toLocaleString() meist besser, denn es beachtet Sprache und regionale Schreibweisen (z. B. 12-Stunden-Format). toString() ist für maschinenlesbare, eindeutige Darstellungen gedacht. Ein PlainTime hat weder Datum noch Zeitzone, daher enthält der String auch keinen Offset und keine Zeitzonen-Angabe.

Parameter

Name Typ Default Beschreibung
$options object {} Optionales Objekt, das die Ausgabe steuert. Mögliche Eigenschaften: fractionalSecondDigits, smallestUnit, roundingMode.
$options.fractionalSecondDigits "auto" | number (0–9) "auto" Anzahl der Nachkommastellen bei den Sekunden. "auto" lässt Nullen am Ende weg. Bei einer Zahl wird auf genau so viele Stellen gerundet bzw. mit Nullen aufgefüllt. 0 gibt keine Nachkommastellen aus.
$options.smallestUnit "minute" | "second" | "millisecond" | "microsecond" | "nanosecond" Kleinste Einheit, die ausgegeben wird. Wenn angegeben, hat sie Vorrang vor fractionalSecondDigits. "minute" ergibt HH:mm. Pluralformen wie "minutes" sind ebenfalls erlaubt.
$options.roundingMode "trunc" | "floor" | "ceil" | "expand" | "halfExpand" | "halfTrunc" | "halfEven" | "halfFloor" | "halfCeil" "trunc" Wie abgeschnittene Stellen gerundet werden. Standard ist Abschneiden ("trunc"), nicht kaufmännisches Runden.

Rückgabewert

Typ
string
Beschreibung
Die Uhrzeit im Format HH:mm:ss[.fffffffff] bzw. HH:mm bei smallestUnit: "minute".

Beispiele

Standard-Ausgabe ohne Optionen

const t1 = Temporal.PlainTime.from("09:05");
const t2 = Temporal.PlainTime.from("09:05:07.5");
const t3 = new Temporal.PlainTime(23, 59, 59, 123, 456, 789);

console.log(t1.toString());
console.log(t2.toString());
console.log(t3.toString());
// Template-Literale rufen toString() automatisch auf
console.log(`Beginn: ${t1}`);
09:05:00 09:05:07.5 23:59:59.123456789 Beginn: 09:05:00

Genauigkeit mit fractionalSecondDigits und smallestUnit steuern

const time = Temporal.PlainTime.from("14:07:42.987654");

console.log(time.toString({ fractionalSecondDigits: 3 }));
console.log(time.toString({ fractionalSecondDigits: 0 }));
console.log(time.toString({ smallestUnit: "minute" }));
console.log(time.toString({ smallestUnit: "millisecond" }));
14:07:42.987 14:07:42 14:07 14:07:42.987

Runden statt Abschneiden

const time = Temporal.PlainTime.from("14:29:59.9");

// Standard: trunc – schneidet ab
console.log(time.toString({ smallestUnit: "minute" }));
// Kaufmännisch runden
console.log(time.toString({ smallestUnit: "minute", roundingMode: "halfExpand" }));

// Achtung: Überlauf über Mitternacht springt auf 00:00
const late = Temporal.PlainTime.from("23:59:59.9");
console.log(late.toString({ smallestUnit: "second", roundingMode: "ceil" }));
14:29 14:30 00:00:00

Praxis: Wert für ein <input type="time"> setzen

// Nächste volle Viertelstunde als Vorschlag im Formular
const now = Temporal.Now.plainTimeISO();
const suggestion = now.round({ smallestUnit: "minute", roundingIncrement: 15, roundingMode: "ceil" });

const input = document.querySelector("#startzeit");
input.value = suggestion.toString({ smallestUnit: "minute" }); // z. B. "10:45"

// Und zurück: Eingabe wieder in ein PlainTime umwandeln
input.addEventListener("change", () => {
  const chosen = Temporal.PlainTime.from(input.value);
  console.log("Gewählt:", chosen.toString());
});
Gewählt: 10:45:00