Date.UTC(): собрать временную метку из компонентов UTC
Date.UTC создаёт временную метку из календарных компонентов, интерпретируемых в UTC. Это отличается от конструктора Date с отдельными числами, который обычно использует местную временную зону.
Назначение
Date.UTC создаёт временную метку из календарных компонентов, интерпретируемых в UTC. Это отличается от конструктора Date с отдельными числами, который обычно использует местную временную зону.
Как это работает
Номер месяца начинается с нуля. Возвращается число миллисекунд, которое можно передать в new Date. Компоненты за обычными границами нормализуются, поэтому метод не является строгим валидатором календарного ввода.
Пример
const stamp = Date.UTC(2026, 0, 15, 12, 30);
console.assert(new Date(stamp).toISOString() === "2026-01-15T12:30:00.000Z");
console.assert(new Date(Date.UTC(2026, 12, 1)).getUTCFullYear() === 2027);
console.assert(new Date(Date.UTC(99, 0, 1)).getUTCFullYear() === 1999);
console.log(stamp);
Что должно получиться
Месяц 0 даёт январь, месяц 12 переносит дату на следующий год. Год 99 демонстрирует специальную трактовку значений от 0 до 99 как годов двадцатого века.
Граница применения и частая ошибка
Не принимайте успешное создание метки за подтверждение существования исходной календарной даты: лишние дни могут перейти в следующий месяц. Для малых годов используйте способ с явным setUTCFullYear и проверкой компонентов. Не смешивайте локальные и UTC-методы случайно.
Самостоятельная проверка
Проверьте месяц на единицу больше ожидаемого и найдите сдвиг. Затем сравните getMonth и getUTCMonth в своей зоне. Для пользовательского ввода валидируйте исходные компоненты до сохранения результата.
Пример JavaScript проверяйте в собственном учебном файле или консоли своего проекта. Встроенная песочница справочника JavaScript не выполняет. Успешное выполнение в одной среде не гарантирует поддержку метода во всех браузерах.