toLocaleString
()
Methode gibt einen sprachsensitiven String mit dem Zeitpunkt zurück. Die neuen Argumente locales
und options
können eingesetzt werden, um die Sprache (und damit die Formatierung) einzustellen oder benutzerdefinierte Formatierungen vorzunehmen. In älteren Implementierungen, die locales
und options
ignorieren, ist die Formatierung des String implementierungsabhängig.Syntax
dateObj.toLocaleString([locales[, options]])
Parameter
Überprüfe das Kapitel Browserkompatibilität, um zu erfahren, welcher Browser die Argumente locales
and options
unterstützt. Zudem sollte das Beispiel Unterstützung der Argumente locales
und options
beachtet werden.
locales
- Optional. Ein String mit einem BCP 47 Sprachcode, oder einem Array von Sprachcodes. Für die generelle Form und Interpretation des
locales
Arguments siehe auf der Intl Seite. Die folgenden Unicode Erweiterungen sind erlaubt: -
nu
- Zahlensysteme. Mögliche Werte sind:
"arab"
,"arabext"
,"bali"
,"beng"
,"deva"
,"fullwide"
,"gujr"
,"guru"
,"hanidec"
,"khmr"
,"knda"
,"laoo"
,"latn"
,"limb"
,"mlym"
,"mong"
,"mymr"
,"orya"
,"tamldec"
,"telu"
,"thai"
,"tibt"
. ca
- Kalender. Mögliche Werte sind:
"buddhist"
,"chinese"
,"coptic"
,"ethioaa"
,"ethiopic"
,"gregory"
,"hebrew"
,"indian"
,"islamic"
,"islamicc"
,"iso8601"
,"japanese"
,"persian"
,"roc"
.
options
-
Optional. Ein Objekt mit einigen oder allen folgenden Eigenschaften:
localeMatcher
- Der Sprachfindungsangorithmus, der eingesetzt wird. Mögliche Werte sind
"lookup"
und"best fit"
. Als Standard ist"best fit"
vorgegeben. Für informationen über diese Option siehe auf der Intl Seite nach. timeZone
- Die eingesetzte Zeitzone. Der einzige Wert, den alle Implementierungen verstehen ist
"UTC"
. Der Standardwert ist die Standard-Laufzeitzeitzone. Manchde Implementierungen erkennen auch die namen der IANA Zeitzonendatenbank, wie zum Beispiel"Asia/Shanghai"
,"Asia/Kolkata"
und"America/New_York"
. hour12
- Wird eingesetzt, wenn 12-Stunden Zeitangaben eingesetzt werden (im gegensatz zu 24-Stunden Zeitangaben). Mögliche Werte sind
true
undfalse
. Der standard ist vonlocales
abhängig. formatMatcher
- Der eingesetzte Formaterkennungsalgorithmus. Mögliche Werte sind
"basic"
und"best fit"
. Der Standatd ist"best fit"
. Siehe im folgenden Paragraphen, um den Einsatz dieses Parameters zu verstehen.
Die folgenden Eigenschaften beschreiben die Datums-Zeit-Komponenten, die für die formatierten Ausgabe eingesetzt werden und deren repräsentation. Implementierungen müssen folgende Kombinationen der Eigenschaften unterstützen:
Wochentag, Jahr, Monat, Tag, Stunde, Minute, Sekunde
Wochentag, Jahr, Monat, Tag
Jahr, Monat, Tag
Jahr, Monat
Monat, Tag
Stunde, Minute, Sekunde
Stunde, Minute
Manche Implementierungen unterstützen weitere Kombinationen der Parameter. Es wird immer auf alle möglichen Kombinationen geprüft, um den besten Treffer zu landen. Zwei Algorithmen sind für die Auswahl der Kombination vorhanden: Ein voll spezifizierter
"basic"
Algorithmus und ein implementierungsabhängiger"best fit"
Algorithmus.weekday
- Die Repräsentation der Wochentage. Mögliche Werte sind
"narrow"
,"short"
und"long"
. era
- Die Repräsentation der Epoche. Mögliche Werte sind
"narrow"
,"short"
und"long"
. year
- Die Repräsentation des Jahres. Mögliche Werte sind
"numeric"
und"2-digit"
. month
- Die Repräsentation des Monats. Mögliche Werte sind
"numeric"
,"2-digit"
,"narrow"
,"short"
und"long"
. day
- Die Repräsentation des Tages. Mögliche Werte sind
"numeric"
und"2-digit"
. hour
- Die Repräsentation der Stunden. Mögliche Werte sind
"numeric"
und"2-digit"
. minute
- Die Repräsentation der Minuten. Mögliche Werte sind
"numeric"
und"2-digit"
. second
- Die Repräsentation der Sekunden. Mögliche Werte sind
"numeric"
und"2-digit"
. timeZoneName
- Die Repräsentation des Zeitzonennamens. Mögliche Werte sind
"short"
und"long"
.
undefined
, wenn aber die Eigenschaften weekday
, year
, month
, day
, hour
, minute
, second
undefined
sind, sind die Eigenschaften year
, month
, day
, hour
, minute
und second
"numeric"
.Rückgabewert
Einen String, der das gegebenen Date
Objektes mit sprachspezifischen Konventionen repräsentiert.
Beispiele
Einsatz von toLocaleString()
Standardeinsatz ohne Angaben zur Sprache und Formatierung. Ein formatierter String in der Standardsprache mit Standardoption wird zurückgegeben.
var date = new Date(Date.UTC(2012, 11, 12, 3, 0, 0)); // toLocaleString() ohne Argumente abhängig von der Implementierung, // der Standardsprache und der Standardzeitzone. console.log(date.toLocaleString()); // → "12/11/2012, 7:00:00 PM" wenn in der Sprache en-US mit America/Los_Angeles Zeitzone ausgeführt
Unterstützung der Argumente locales
und options
Die Argumente locales
and options
sind noch nicht in allen Browsern unterstützt. Um herauszufinden, ob eine Implementierung die Argumente unterstützt, kann die Anforderung benutzt werden, dass bei nicht existierenden Sprachen ein RangeError
erzeugt wird:
function toLocaleStringSupportsLocales() { try { new Date().toLocaleString('i'); } catch (e) { return e.name === 'RangeError'; } return false; }
Einsatz von locales
Das Beispiel zeigt einige Variation von internationalisierten Datums- und Zeitformaten. Um das Format der Sprache der Benutzerschnittstelle (z. B. Webseite) zu bekommen, muss die Sprache (und manchmal eine fallback Sprache) mit dem Argument locales
gesetzt werden:
var date = new Date(Date.UTC(2012, 11, 20, 3, 0, 0));
// US englischer einsatz mit Monat-Tag-Jahr und 12-Stunden Zeit mit AM/PM
console.log(date.toLocaleString('en-US'));
// → "12/19/2012, 7:00:00 PM"
// Britisch englischer Einsatz mit Tag-Monat-Jahr und 24-Stunden Zeit ohne AM/PM
console.log(date.toLocaleString('en-GB'));
// → "20/12/2012 03:00:00"
// Koreanischer Einsatz mit Jahr-Monat-Tag und 12-Stunden Zeit mit AM/PM
console.log(date.toLocaleString('ko-KR'));
// → "2012. 12. 20. 오후 12:00:00"
// In den meisten arabischen Ländern werden arabische Ziffern genutzt.
console.log(date.toLocaleString('ar-EG'));
// → "٢٠/١٢/٢٠١٢ ٥:٠٠:٠٠ ص"
// Für mansche japanische Anwendungen wird er japanische Kalender benutzt,
// bei dem das Jahr 2012 das Jahr 24 der Heisei-Zeit ist.
console.log(date.toLocaleString('ja-JP-u-ca-japanese'));
// → "24/12/20 12:00:00"
// Wenn eine Sprache angegeben wird, die vielleicht nicht unterstützt wird,
// wie Balinesisch, wird eine fallback Sprache (Indonesisch) definiert.
console.log(date.toLocaleString(['ban', 'id']));
// → "20/12/2012 11.00.00"
Einsatz von options
Das Ergebnis der toLocaleString
()
Methode kann benutzerdefiniert mit dem Argument options
beeinflusst werden.
var date = new Date(Date.UTC(2012, 11, 20, 3, 0, 0)); // Gibt einen Wochentag und ein langes Datum zurück var options = { weekday: 'long', year: 'numeric', month: 'long', day: 'numeric' }; console.log(date.toLocaleString('de-DE', options)); // → "Donnerstag, 20. Dezember 2012" // Macht UTC sichtbar options.timeZone = 'UTC'; options.timeZoneName = 'short'; console.log(date.toLocaleString('en-US', options)); // → "Thursday, December 20, 2012, GMT" // Manchal brauchen US-Sprachen auch 24-Stunden Zeiten console.log(date.toLocaleString('en-US', { hour12: false })); // → "12/19/2012, 19:00:00"
Performance
Wenn viele Daten formatiert werden sollen, ist es besser ein Intl.DateTimeFormat
Objekt zu erstellen und die Funktion format
zu benutzen.
Spezifikationen
Spezifikation | Status | Kommentar |
---|---|---|
ECMAScript 1st Edition (ECMA-262) | Standard | Initiale Definition. Implementiert in JavaScript 1.0. |
ECMAScript 5.1 (ECMA-262) Die Definition von 'Date.prototype.toLocaleString' in dieser Spezifikation. |
Standard | |
ECMAScript 2015 (6th Edition, ECMA-262) Die Definition von 'Date.prototype.toLocaleString' in dieser Spezifikation. |
Standard | |
ECMAScript 2017 Draft (ECMA-262) Die Definition von 'Date.prototype.toLocaleString' in dieser Spezifikation. |
Entwurf | |
ECMAScript Internationalization API 1.0 (ECMA-402) Die Definition von 'Date.prototype.toLocaleString' in dieser Spezifikation. |
Standard | Definitin der locales und options Argumente. |
ECMAScript Internationalization API 2.0 (ECMA-402) Die Definition von 'Date.prototype.toLocaleString' in dieser Spezifikation. |
Standard | |
ECMAScript Internationalization API 4.0 (ECMA-402) Die Definition von 'Date.prototype.toLocaleString' in dieser Spezifikation. |
Entwurf |
Browserkompatibilität
Feature | Chrome | Firefox (Gecko) | Internet Explorer | Opera | Safari |
---|---|---|---|---|---|
Basic support | (Ja) | (Ja) | (Ja) | (Ja) | (Ja) |
locales and options arguments |
24 | 29 (29) | 11 | 15 | Nicht unterstützt |
Feature | Android | Chrome for Android | Firefox Mobile (Gecko) | IE Mobile | Opera Mobile | Safari Mobile |
---|---|---|---|---|---|---|
Basic support | (Ja) | (Ja) | (Ja) | (Ja) | (Ja) | (Ja) |
locales and options arguments |
Nicht unterstützt | 26 | Nicht unterstützt | Nicht unterstützt | Nicht unterstützt | Nicht unterstützt |