JavaScript - Parse UTC Date

Как я могу разобрать простую строку даты и дать JavaScript знать, что это фактически дата UTC? В настоящее время, если я new Date('2015-08-27') она преобразует ее в мой часовой пояс.

Ответы

Ответ 1

Вы можете добавить "T00: 00: 00.000Z", чтобы указать часовой пояс (Z обозначает UTC)

new Date('2015-08-27' + 'T00:00:00.000Z')

Обратите внимание, что новая дата ('2015-08-27') обрабатывается по-разному в ES5 (UTC) и ES6 (Local), поэтому вы не можете ожидать, что какая-либо коррекция будет работать последовательно, если вы планируете жестко ее кодировать (т.е. не делать этого)


Кроме того, обратите внимание, что ваш console.log может показать вам локальное время, соответствующее времени UTC, на которое оценивается выражение (которое, как правило, выбрасывает вас, если вы ожидаете, что UTC будет в конце для выражения, которое будет оцениваться по времени UTC и ваш локальный часовой пояс в конце для тех, кто оценивает ваше местное время). Например

new Date('2015-08-27T00:00:00.000Z')

может показать

Thu Aug 27 2015 1:00:00 GMT+100

который является таким же, как

Thu Aug 27 2015 00:00:00 UTC

Ответ 2

Вот что я буду делать.

var current = new Date();
var utcDate = new Date(current.getTime() + current.getTimezoneOffset() * 60000);