Вывод даты JS в VSCode отстает на пару часов

Рейтинг: 0Ответов: 1Опубликовано: 20.07.2023

Я написал код, который должен выводить дату

let date = new Date(2018, 0, 1, 18, 0, 0);
console.log(date);

Если я правильно понял, то в консоль должно вывести 2018 год, 1 января 18 часов

Вот что выводится в консоль: 2018-01-01T13:00:00.000Z

Та же дата, только отстает на пять часов. Подскажите пожалуйста, так и должно быть? Или что-то не так? Писал в редакторе VSCode

Ответы

▲ 0

Всё потому что дата в JS хранится по гринвичу (UTC), но создаёте Вы её от своего локального времени.

Приводите к её к нужному часовому поясу или к строке (автоматическое преобразование к локальному часовому поясу), тогда отобразится верное время:

let date = new Date(2018, 0, 1, 18, 0, 0);
console.log(date);

console.log(date.toLocaleString("ru-RU", {
  timeZone: "Europe/Moscow"
}))
console.log(date.toString())

Для более удобной работы с датами лучше использовать luxon.