Temporal.PlainYearMonth.prototype.toLocaleString()
Базовый Уровень Ограниченная доступность
Эта функция не является Базовым Уровнем, потому что она не работает в некоторых из наиболее широко используемых браузеров.
Метод toLocaleString() экземпляров Temporal.PlainYearMonth возвращает строку с зависящим от языка представлением этого года-месяца. В реализациях с поддержкой API Intl.DateTimeFormat, этот метод делегирует Intl.DateTimeFormat.
Каждый раз, когда вызывается toLocaleString, он должен выполнять поиск в большой базе данных строк локализации, что потенциально неэффективно. Когда метод вызывается много раз с одними и теми же аргументами, лучше создать объект Intl.DateTimeFormat и использовать его метод format(), потому что объект DateTimeFormat запоминает переданные ему аргументы и может решить кэшировать часть базы данных, чтобы будущие вызовы format могли искать строки локализации в более ограниченном контексте.
Синтаксис
toLocaleString() toLocaleString(locales) toLocaleString(locales, options)
Параметры
Параметры locales и options настраивают поведение функции и позволяют приложениям указывать язык, чьи правила форматирования должны использоваться.
В реализациях, поддерживающих API Intl.DateTimeFormat, эти параметры точно соответствуют параметрам конструктора Intl.DateTimeFormat(). Реализации без поддержки Intl.DateTimeFormat возвращают ту же самую строку, что и toString(), игнорируя оба параметра.
-
localesНеобязательный - Строка с тегом языка BCP 47 или массив таких строк. Соответствует параметру
localesконструктораIntl.DateTimeFormat(). -
optionsНеобязательный - Объект, настраивающий формат вывода. Соответствует параметру
optionsконструктораIntl.DateTimeFormat(). Опцияcalendarдолжна быть предоставлена с тем же значением, что и календарь этого года-месяца. Что касается опций компонентов даты и времени и сокращений стилей (dateStyleиtimeStyle), опции должны соответствовать одной из следующих форм:- Не предоставлять ни одну из них:
yearиmonthпо умолчанию примут значение"numeric". - Предоставить только
dateStyle: это разворачивается в форматыera,yearиmonth. - Предоставить некоторые опции компонентов даты и времени, где по крайней мере одна из них —
yearилиmonth. В выходные данные будут включены только указанные компоненты даты.
- Не предоставлять ни одну из них:
См. конструктор Intl.DateTimeFormat() для получения подробной информации об этих параметрах и способах их использования.
Возвращаемое значение
Строка, представляющая заданный год-месяц в соответствии с языковыми соглашениями.
В реализациях с Intl.DateTimeFormat это эквивалентно new Intl.DateTimeFormat(locales, options).format(yearMonth), где options был нормализован, как описано выше.
Примечание: В большинстве случаев форматирование, возвращаемое toLocaleString(), является согласованным. Однако вывод может варьироваться между реализациями, даже в пределах одной и той же локали — вариации вывода предусмотрены дизайном и разрешены спецификацией. Он также может оказаться не таким, как вы ожидаете. Например, строка может использовать неразрывные пробелы или быть окружена двунаправленными управляющими символами. Вам не следует сравнивать результаты toLocaleString() с жестко заданными константами.
Исключения
-
RangeError - Выбрасывается, если какой-либо из параметров неверен.
-
TypeError - Выбрасывается, если какой-либо из параметров не соответствует ожидаемому типу.
Примеры
Использование toLocaleString()
Базовое использование этого метода без указания locale возвращает отформатированную строку в локали по умолчанию и с параметрами по умолчанию.
// Note that just specifying "2021-08" defaults to the ISO 8601 calendar,
// which throws an error if the locale's default calendar is not ISO 8601.
const ym = Temporal.PlainYearMonth.from("2021-08-01[u-ca=gregory]");
console.log(ym.toLocaleString()); // 8/2021 (assuming en-US locale and Gregorian calendar)
Если календарь года-месяца не соответствует календарю по умолчанию для локали, даже если его календарь — iso8601, необходимо явно указать опцию calendar с тем же значением.
const ym = Temporal.PlainYearMonth.from("2021-08");
ym.toLocaleString("en-US", { calendar: "iso8601" }); // 2021-08
Использование toLocaleString() с параметрами
Вы можете настроить, какие части года-месяца включены в вывод, предоставив параметр options.
const ym = Temporal.PlainYearMonth.from("2021-08-01[u-ca=gregory]");
ym.toLocaleString("en-US", { dateStyle: "full" }); // August 2021
ym.toLocaleString("en-US", { year: "2-digit" }); // 21
ym.toLocaleString("en-US", { month: "long" }); // August
Спецификации
Совместимость с браузерами
| Десктоп | Мобильные | Сервер | |||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 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 |
No |
No |
144 |
No |
1.4.0 |
2.7 |
26.0.0 |
См. также
Temporal.PlainYearMonthIntl.DateTimeFormatTemporal.PlainYearMonth.prototype.toJSON()Temporal.PlainYearMonth.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/PlainYearMonth/toLocaleString