Dieser Inhalt wurde automatisch aus dem Englischen übersetzt, und kann Fehler enthalten. Erfahre mehr über dieses Experiment.

View in English Always switch to English

Temporal.PlainDateTime.prototype.toLocaleString()

Limited availability

This feature is not Baseline because it does not work in some of the most widely-used browsers.

Die toLocaleString() Methode von Temporal.PlainDateTime Instanzen gibt eine Zeichenkette mit einer sprachsensitiven Darstellung dieses Datums-Zeit-Werts zurück. In Implementierungen mit Unterstützung für die Intl.DateTimeFormat API delegiert diese Methode an Intl.DateTimeFormat.

Jedes Mal, wenn toLocaleString aufgerufen wird, muss eine Suche in einer großen Datenbank von Lokalisierungszeichenfolgen durchgeführt werden, was potenziell ineffizient ist. Wenn die Methode viele Male mit denselben Argumenten aufgerufen wird, ist es besser, ein Intl.DateTimeFormat Objekt zu erstellen und dessen format() Methode zu verwenden, da ein DateTimeFormat Objekt sich die übergebenen Argumente merkt und möglicherweise beschließt, einen Teil der Datenbank zwischenspeichern, sodass zukünftige format Aufrufe nach Lokalisierungszeichenfolgen in einem engeren Kontext suchen können.

Syntax

js
toLocaleString()
toLocaleString(locales)
toLocaleString(locales, options)

Parameter

Die locales und options Parameter passen das Verhalten der Funktion an und ermöglichen es Anwendungen, die Sprache anzugeben, deren Formatierungskonventionen verwendet werden sollen.

In Implementierungen, die die Intl.DateTimeFormat API unterstützen, entsprechen diese Parameter genau den Parametern des Intl.DateTimeFormat() Konstruktors. Implementierungen ohne Intl.DateTimeFormat Unterstützung geben dieselbe Zeichenkette wie toString() zurück, wobei beide Parameter ignoriert werden.

locales Optional

Eine Zeichenkette mit einem BCP 47 Sprach-Tag oder ein Array solcher Zeichenketten. Entspricht dem locales Parameter des Intl.DateTimeFormat() Konstruktors.

options Optional

Ein Objekt, das das Ausgabeformat anpasst. Entspricht dem options Parameter des Intl.DateTimeFormat() Konstruktors. Wenn der Kalender dieses Datums-Zeit-Werts nicht "iso8601" ist, muss die calendar Option mit demselben Wert angegeben werden; andernfalls, wenn der Kalender dieses Datums-Zeit-Werts "iso8601" ist, kann die calendar Option jeden Wert haben. Bezüglich der Datums-Zeit-Komponenten Optionen und der Stilabkürzungen (dateStyle und timeStyle) sollten die Optionen eine der folgenden Formen haben:

  • Keine davon bereitstellen: year, month, day, hour, minute und second werden standardmäßig auf "numeric" gesetzt.
  • Mindestens eine von dateStyle oder timeStyle bereitstellen: Die Datums-Zeit-Komponenten werden entsprechend dem angegebenen Stil und der Sprache gesetzt.
  • Einige Datums-Zeit-Komponenten Optionen bereitstellen. Nur die angegebenen Datums-Zeit-Komponenten werden in der Ausgabe enthalten sein.

Siehe den Intl.DateTimeFormat() Konstruktor für Details zu diesen Parametern und deren Verwendung.

Rückgabewert

Eine Zeichenkette, die das gegebene Datum-Zeit-Wert entsprechend sprachspezifischen Konventionen darstellt.

In Implementierungen mit Intl.DateTimeFormat entspricht dies new Intl.DateTimeFormat(locales, options).format(dateTime), wobei options wie oben beschrieben normalisiert wurde.

Hinweis: Meistens ist die von toLocaleString() zurückgegebene Formatierung konsistent. Allerdings kann die Ausgabe zwischen Implementierungen variieren, selbst innerhalb derselben Sprache — Variationen in der Ausgabe sind von der Spezifikation beabsichtigt und erlaubt. Es kann auch nicht das sein, was Sie erwarten. Zum Beispiel kann die Zeichenkette nicht brechende Leerzeichen verwenden oder von bidirektionalen Steuerzeichen umgeben sein. Sie sollten die Ergebnisse von toLocaleString() nicht mit fest kodierten Konstanten vergleichen.

Ausnahmen

RangeError

Wird ausgelöst, wenn eine der Optionen ungültig ist.

TypeError

Wird ausgelöst, wenn eine der Optionen nicht vom erwarteten Typ ist.

Beispiele

Verwendung von toLocaleString()

Die grundlegende Verwendung dieser Methode ohne Angabe einer locale gibt eine formatierte Zeichenkette in der Standard-Sprache und mit Standard-Optionen zurück.

js
const dt = Temporal.PlainDateTime.from("2021-08-01T12:34:56");

console.log(dt.toLocaleString()); // 8/1/2021, 12:34:56 PM (assuming en-US locale)

Wenn der Kalender des Datums nicht mit dem Standardkalender der Sprache übereinstimmt und der Kalender des Datums nicht iso8601 ist, muss eine explizite calendar Option mit demselben Wert angegeben werden.

js
const dt = Temporal.PlainDateTime.from("2021-08-01T12:34:56[u-ca=japanese]");
// The ja-JP locale uses the Gregorian calendar by default
dt.toLocaleString("ja-JP", { calendar: "japanese" }); // R3/8/1 12:34:56

Verwendung von toLocaleString() mit Optionen

Sie können anpassen, welche Teile des Datums in die Ausgabe einbezogen werden, indem Sie den options Parameter bereitstellen.

js
const dt = Temporal.PlainDateTime.from("2021-08-01T12:34:56");
dt.toLocaleString("en-US", { dateStyle: "full", timeStyle: "full" }); // Sunday, August 1, 2021 at 12:34:56 PM
dt.toLocaleString("en-US", {
  year: "numeric",
  month: "long",
  hour: "numeric",
}); // August 2021 at 12 PM
dt.toLocaleString("en-US", {
  year: "numeric",
  hour: "numeric",
  minute: "numeric",
}); // 2021, 12:34 PM

Spezifikationen

Specification
Temporal
# sec-temporal.plaindatetime.prototype.tolocalestring

Browser-Kompatibilität

Siehe auch