У меня есть даты, сохраненные в mongodb в формате UTC, например. "2016-01-28T00:00:00.000Z". В клиенте я использую moment.js для форматирования даты. Однако, когда я создал момент этой конкретной даты, в игру вступает летнее время:
>moment("2016-01-28T00:00:00.000Z").format()
"2016-01-27T19:00:00-05:00"
Если я использую часовой пояс момента для настройки этого времени, это не сработает, потому что смещение на данный момент равно -4, а не -5. Как правильно настроить это время, чтобы вместо 27.01.16 я получил 28.01.16, чего я и хочу. На данный момент я придумал одно решение, чтобы получить .utcOffset
за минуты и добавить это к моменту моего времени:
moment("2016-01-28T00:00:00.000Z").add(
-moment("2016-01-28T00:00:00.000Z").utcOffset(),'minutes').format()
"2016-01-28T00:00:00-05:00"
Однако я не уверен, что это лучший способ сделать это.
Z
, что для UTC и эквивалентно+00:00
). См. ответ в посте с дублированием, чтобы понять, как использовать функциюparseZone
, чтобы сохранить его, или функциюutc
, чтобы использовать исключительно UTC. - person Matt Johnson-Pint   schedule 21.05.2016