momentjs не возвращает одинаковый вывод для одного и того же часового пояса в другом формате ввода - PullRequest
0 голосов
/ 26 июня 2018

У меня проблема при использовании библиотеки моментов js.

let moment = require("moment-timezone")

date = '02/15/2018 5:00 PM'
fmt = 'MM/DD/YYYY hh:mm A'
timezone = 'America/New_York'

moment.tz(date, fmt, timezone) //Statement 1

Вывод> moment.parseZone ("2018-02-15T17: 00: 00.000-05: 00")

moment().tz(timezone) //Statement 2

Выходные данные> moment.parseZone ("2018-06-26T04: 33: 51.173-04: 00")

Оба оператора используют один часовой пояс, но разница в часах отличается от UTC.Первый показывает разницу в 5 часов, а второй показывает разницу в 4 часа.

Если я использую следующий формат, тогда отображается правильное время и дата.

moment.tz({year:2018, month:2, day:15, hour:17}, timezone) //statement3

Выходные данные> moment.parseZone ("2018-03-15T17: 00: 00.000-04: 00")

Я не могу понять, почему в утверждении 1 не указана правильная дата и время.

Спасибо за помощь.

1 Ответ

0 голосов
/ 27 июня 2018

Разница в том, что первая дата в феврале, вне летнего времени, а вторая дата в июне, то есть внутри летнего времени.Таким образом, смещение UTC составляет -5 и -4 часа соответственно для каждой даты.

Помните, смещение UTC для большинства часовых поясов будет изменяться в зависимости от времени года, никогда предполагает фиксированное смещение вваш код.

...