Temporal.PlainDateTime.prototype.toLocaleString()
Baseline Ограниченная доступность
Эта функция не является Baseline, поскольку она не работает в некоторых из наиболее широко используемых браузеров.
Метод toLocaleString() экземпляров Temporal.PlainDateTime возвращает строку с представлением даты и времени, чувствительным к языку. В реализациях с поддержкой Intl.DateTimeFormat API этот метод делегирует Intl.DateTimeFormat.
Каждый раз, когда вызывается toLocaleString, приходится выполнять поиск в большой базе данных строк локализации, что потенциально неэффективно. Когда метод вызывается много раз с одинаковыми аргументами, лучше создать объект Intl.DateTimeFormat и использовать его метод format(), поскольку объект DateTimeFormat запоминает переданные ему аргументы и может принять решение кэшировать часть базы данных, чтобы будущие вызовы format могли искать строки локализации в более ограниченном контексте.
Синтаксис
toLocaleString() toLocaleString(locales) toLocaleString(locales, options)
Параметры
Параметры locales и options настраивают поведение функции и позволяют приложениям указывать язык, соглашения о форматировании которого должны использоваться.
В реализациях, поддерживающих Intl.DateTimeFormat API, эти параметры точно соответствуют параметрам конструктора Intl.DateTimeFormat(). Реализации без поддержки Intl.DateTimeFormat возвращают ту же строку, что и toString(), игнорируя оба параметра.
-
localesНеобязательный - Строка с языковым тегом BCP 47 или массив таких строк. Соответствует параметру
localesконструктораIntl.DateTimeFormat(). -
optionsНеобязательный - Объект, настраивающий формат вывода. Соответствует параметру
optionsконструктораIntl.DateTimeFormat(). Если календарь этого объекта даты и времени не является"iso8601", параметрcalendarдолжен быть предоставлен с тем же значением; в противном случае, если календарь этого объекта даты и времени является"iso8601", параметрcalendarможет иметь любое значение. Относительно параметров компонентов даты и времени и ярлыков стиля (dateStyleиtimeStyle), параметры должны соответствовать одной из следующих форм:- Не предоставлять ни одного из них:
year,month,day,hour,minuteиsecondбудут по умолчанию"numeric". - Предоставить хотя бы один из
dateStyleилиtimeStyle: компоненты даты и времени будут установлены в соответствии с указанным стилем и локалью. - Предоставить некоторые параметры компонентов даты и времени. В выводе будут включены только указанные компоненты даты и времени.
- Не предоставлять ни одного из них:
См. конструктор Intl.DateTimeFormat() для получения подробной информации об этих параметрах и их использовании.
Возвращаемое значение
Строка, представляющая данную дату и время в соответствии с языковыми соглашениями.
В реализациях с Intl.DateTimeFormat это эквивалентно new Intl.DateTimeFormat(locales, options).format(dateTime), где options была нормализована, как описано выше.
Примечание: В большинстве случаев форматирование, возвращаемое toLocaleString(), является последовательным. Однако вывод может различаться между реализациями, даже в пределах одной локали — вариации вывода предусмотрены и разрешены спецификацией. Он также может не соответствовать вашим ожиданиям. Например, строка может использовать неразрывные пробелы или быть окружена двунаправленными управляющими символами. Не следует сравнивать результаты toLocaleString() с жестко заданными константами.
Исключения
-
RangeError - Выбрасывается, если любой из параметров недопустим.
-
TypeError - Выбрасывается, если любой из параметров имеет неверный тип.
Примеры
Использование toLocaleString()
Базовое использование этого метода без указания locale возвращает отформатированную строку в локали по умолчанию и с параметрами по умолчанию.
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)
Если календарь даты не совпадает с календарем по умолчанию для локали, и календарь даты не является iso8601, необходимо явно указать параметр calendar с тем же значением.
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
Использование toLocaleString() с параметрами
Вы можете настроить, какие части даты будут включены в вывод, предоставив параметр options.
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
Спецификации
Совместимость с браузерами
| Настольные компьютеры | Мобильные устройства | Сервер | |||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Chrome | Edge | Firefox | Opera | Safari | Chrome Android | Firefox for Android | Opera Android | Safari on iOS | Samsung Internet | WebView Android | WebView on iOS | Bun | Deno | Node.js | |
toLocaleString |
144 |
144 |
139 |
128 |
preview |
144 |
139 |
95 |
Нет |
Нет |
144 |
Нет |
1.4.0 |
2.7 |
26.0.0 |
См. также
Temporal.PlainDateTimeIntl.DateTimeFormatTemporal.PlainDateTime.prototype.toJSON()Temporal.PlainDateTime.prototype.toString()
© 2005–2025 MDN contributors.
Licensed under the Creative Commons Attribution-ShareAlike License v2.5 or later.
https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Temporal/PlainDateTime/toLocaleString