Я использую JavaScript, у меня есть вызов JSON, который возвращает мои UTC DateTimes как строки, и я хочу преобразовать их в объекты UTC Date. Кто-нибудь сделал это? Я вообще не хочу идти в местное время.
У меня есть строка UTC, и я хочу преобразовать ее в объект Date UTC в JavaScript
Ответ 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());