У меня есть строка UTC, и я хочу преобразовать ее в объект Date UTC в JavaScript

Я использую JavaScript, у меня есть вызов JSON, который возвращает мои UTC DateTimes как строки, и я хочу преобразовать их в объекты UTC Date. Кто-нибудь сделал это? Я вообще не хочу идти в местное время.

Ответ 1

В любом браузере с неопределенным расположением вы просто передаете это в Date с "Z" в конце:

var dt = new Date(yourString + "Z");

Этот формат был определен для JavaScript в спецификации ES5 в декабре 2009 года. "Z" важно убедиться, что строка интерпретируется как UTC, а не местное время¹.

Объекты

Date отслеживают определенный момент времени, независимо от часового пояса. Если вы используете методы Date UTC (getUTCFullYear, getUTCMonths и т.д.), Вы получите доступ к этому моменту в формате UTC. (Если вы используете не-UTC-методы, вы получите доступ к нему, переведенному в локальное время.)

Пример:

var str = "2016-11-22T17:14:00";
var dt = new Date(str + "Z");
console.log("UTC string:");
console.log(dt.toUTCString());
console.log("Local string");
console.log(dt.toString());
console.log("Hours UTC:   " + dt.getUTCHours());
console.log("Hours local: " + dt.getHours());