Раньше я всегда говорил, что невозможно отобразить дату / время в формате, заданном пользователем в настройках ОС. Например, мой язык / регион может быть EN-US, но я предпочитаю использовать 24-часовой формат времени. Или я, возможно, изменил формат даты short
с mm/dd/yyyy
на mm/dd/yy
.
Изменилось ли это сейчас, когда Intl.DateTimeFormat
может использовать значения dateStyle
и timeStyle
? Примечание: эти опции не поддерживаются во всех браузерах на момент написания этого.
Значения для dateStyle
и timeStyle
:
Эти предопределенные форматы (full
, long
и др. c) может быть определено пользователем в его системных настройках, например this .
Используют ли значения dateStyle
и timeStyle
тот же формат, который определен в настройках ОС для значений full
, long
, et c?
Вот пример. В приведенном ниже фрагменте кода я использовал toLocaleString
для отображения текущей даты / времени. Для вариантов я передал dateStyle: 'long'
и timeStyle: 'long'
. Будет ли при этом использоваться тот же формат, который определен в моих настройках ОС, даже если я изменю «длинный» формат на пользовательский?
const event = new Date();
console.log(event.toLocaleString(undefined, { dateStyle: 'long', timeStyle: 'long', timeZone: 'UTC' }));