Получить несмещенный объект Date из строки

Я пытаюсь получить объект Date из строки

const str = 2020-11-19T05:00:00.000Z
console.log(new Date(str));

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

Thu Nov 19 2020 08:00:00 GMT+0300 (Москва, стандартное время)

Как сделать так, чтобы я получал Date без преобразования времени к локальному?


Ответы (1 шт):

Автор решения: Shturmavik

1-й вариант:

let str = '2020-11-19T05:00:00.000Z'
let d = new Date(str);

var day = d.getUTCDate();
var month = d.getUTCMonth();
var year = d.getUTCFullYear();
var hour = d.getUTCHours();
var minute = d.getUTCMinutes();
var second = d.getUTCSeconds();

console.log(`${day}.${month}.${year} ${hour}:${minute}:${second}`)

//19.10.2020 5:0:0

2-й вариант:

let str = '2020-11-19T05:00:00.000Z'
let date = new Date(str);

console.log(date.toLocaleDateString('ru-RU'));
console.log(date.toLocaleTimeString('ru-RU',{hour12: false, timeZone: "UTC"}));

//19.11.2020
//05:00:00
→ Ссылка