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

Temporal.Instant.prototype.toString()

Methode

Gibt den Zeitpunkt als RFC 9557-/ISO 8601-String zurück, standardmäßig in UTC mit <code>Z</code>, optional mit dem Offset einer Zeitzone und einer bestimmten Genauigkeit.

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

Signatur

Temporal.Instant.prototype.toString(options)

Beschreibung

toString() wandelt ein Temporal.Instant – also einen exakten Zeitpunkt auf der Zeitachse mit Nanosekunden-Genauigkeit – in einen maschinenlesbaren String um. Ohne Optionen sieht das Ergebnis z. B. so aus: 2024-03-15T12:30:45.123456789Z. Das Z steht für UTC.

Mit der Option timeZone wird dieselbe Uhrzeit als Ortszeit der angegebenen Zeitzone ausgegeben, mit numerischem Offset (z. B. +01:00). Der Name der Zeitzone in eckigen Klammern (z. B. [Europe/Berlin]) wird dabei nicht angehängt. Wer diese Angabe braucht, wandelt den Zeitpunkt mit toZonedDateTimeISO() in ein Temporal.ZonedDateTime um.

Mit smallestUnit, fractionalSecondDigits und roundingMode legst du fest, wie genau der String ist. Das ist nützlich für Logs, Datenbankspalten oder APIs, die z. B. nur Millisekunden oder ganze Sekunden annehmen. Der erzeugte String lässt sich mit Temporal.Instant.from() ohne Verlust wieder einlesen, solange nicht gerundet wurde.

Für Anzeigen, die Menschen lesen, ist toLocaleString() besser geeignet. toString() ist für den Austausch zwischen Programmen und für die Speicherung gedacht.

Parameter

Name Typ Default Beschreibung
$options object {} Optionales Objekt mit den folgenden Eigenschaften.
$options.timeZone string | Temporal.ZonedDateTime "UTC" (Ausgabe mit <code>Z</code>) IANA-Zeitzone (z. B. "Europe/Berlin") oder fester Offset (z. B. "+05:30"). Die Uhrzeit wird in diese Zone umgerechnet und mit Offset statt Z ausgegeben.
$options.fractionalSecondDigits number | "auto" "auto" Anzahl der Nachkommastellen der Sekunden (0–9). Bei "auto" werden Nullen am Ende weggelassen. Wird ignoriert, wenn smallestUnit gesetzt ist.
$options.smallestUnit "minute" | "second" | "millisecond" | "microsecond" | "nanosecond" Kleinste Einheit im Ergebnis. Hat Vorrang vor fractionalSecondDigits. Bei "minute" fehlen die Sekunden ganz.
$options.roundingMode "trunc" | "floor" | "ceil" | "expand" | "halfExpand" | "halfTrunc" | "halfEven" | "halfFloor" | "halfCeil" "trunc" Legt fest, wie überzählige Stellen behandelt werden. Standardmäßig werden sie einfach abgeschnitten.

Rückgabewert

Typ
string
Beschreibung
Der Zeitpunkt im RFC 9557-/ISO 8601-Format, z. B. "2024-03-15T12:30:45.123Z" oder mit Offset "2024-03-15T13:30:45.123+01:00".

Beispiele

Standardausgabe in UTC

const instant = Temporal.Instant.from("2024-03-15T12:30:45.123456789Z");
console.log(instant.toString());

// Nullen in den Nachkommastellen werden bei "auto" weggelassen
console.log(Temporal.Instant.fromEpochMilliseconds(0).toString());
2024-03-15T12:30:45.123456789Z 1970-01-01T00:00:00Z

Genauigkeit für Logs und APIs festlegen

const instant = Temporal.Instant.from("2024-03-15T12:30:45.987654321Z");

// Millisekunden, z. B. für eine JavaScript-kompatible API
console.log(instant.toString({ fractionalSecondDigits: 3 }));

// Ganze Sekunden, standardmäßig abgeschnitten
console.log(instant.toString({ smallestUnit: "second" }));

// Kaufmännisch auf Minuten runden
console.log(instant.toString({ smallestUnit: "minute", roundingMode: "halfExpand" }));
2024-03-15T12:30:45.987Z 2024-03-15T12:30:45Z 2024-03-15T12:31Z

Ausgabe mit dem Offset einer Zeitzone

const instant = Temporal.Instant.from("2024-07-01T08:00:00Z");

console.log(instant.toString({ timeZone: "Europe/Berlin" }));
console.log(instant.toString({ timeZone: "America/New_York", smallestUnit: "minute" }));

// Mit Zeitzonen-Name in Klammern: über ZonedDateTime
console.log(instant.toZonedDateTimeISO("Europe/Berlin").toString());
2024-07-01T10:00:00+02:00 2024-07-01T04:00-04:00 2024-07-01T10:00:00+02:00[Europe/Berlin]

Zeitstempel speichern und wieder einlesen

const createdAt = Temporal.Now.instant();
const stored = createdAt.toString(); // z. B. in einer Datenbank ablegen

const restored = Temporal.Instant.from(stored);
console.log(restored.equals(createdAt));

// JSON.stringify nutzt toJSON(), das dasselbe Ergebnis liefert wie toString()
console.log(JSON.stringify({ at: Temporal.Instant.fromEpochMilliseconds(0) }));
true {"at":"1970-01-01T00:00:00Z"}