Вебсправочник
Справочник JavaScript

Intl.DateTimeFormat: дата в выбранном часовом поясе

Intl.DateTimeFormat отображает момент времени с учётом локали, часового пояса и выбранных частей даты.

Назначение

Intl.DateTimeFormat отображает момент времени с учётом локали, часового пояса и выбранных частей даты.

Как это работает

Если timeZone не задан, обычно используется часовой пояс среды. Один момент может приходиться на разные календарные даты в разных поясах. Явная настройка делает отчёт или расписание предсказуемее.

Пример

const formatter=new Intl.DateTimeFormat("en-GB",{timeZone:"UTC",year:"numeric",month:"2-digit",day:"2-digit"});
const parts=formatter.formatToParts(new Date("2026-08-30T12:00:00Z"));
console.assert(parts.find(p=>p.type==="day").value==="30");
console.assert(parts.find(p=>p.type==="year").value==="2026");

Что должно получиться

День и год определены в UTC, независимо от местного пояса компьютера. Проверка частей не зависит от выбранного разделителя между компонентами даты.

Граница применения и частая ошибка

Не сравнивайте локализованные строки дат как надёжный формат хранения. Для модели данных нужен определённый момент или календарная дата, а форматирование выполняют на границе интерфейса.

Самостоятельная проверка

Отобразите момент около полуночи в UTC и другом часовом поясе. Проверьте, какая календарная дата должна быть понятна пользователю в вашем сценарии.

JavaScript в песочнице этого сайта не выполняется. Перенесите пример в отдельный учебный файл. Сначала проверьте исходный результат, затем измените входные данные; ошибка проверки означает, что результат отличается от ожидаемого.

Самостоятельный учебный материал. Техническая документация: первоисточник по теме ↗. Если результат отличается, проверьте код и версию браузера.