В бэкэнде Sanity все значения datetime хранятся как UTC.
Например, happensAt: '2019-05-17T21:05:00.000Z'
.
Однако поле ввода отображает метку времени, как видно избраузеры тимзона.Поэтому, если часовой пояс вашего браузера составляет 2 часа после UTC, 2019-06-29T19:00:00.000Z
будет отображаться как 2019-06-29 21:00
.
В вашем случае, если вы хотите, чтобы документ Program
имел предварительный просмотр с браузерамипо местному времени вместо значения UTC вы можете переопределить предварительный просмотр, используя сохраненное значение UTC и создавая локализованное строковое представление. date-fns может помочь:
const format = require('date-fns/format')
const utcDate = program.happensAt // '2019-05-17T21:05:00.000Z'
const stringToDisplay = format(new Date(utcDate), "HH:mm") // '23:05'
Затем вы можете использовать stringToDisplay
в превью вашего документа.
IЯ абсолютно понимаю, что это поведение неожиданно, но я не уверен на 100%, что такое оптимальное / правильное поведение.Любые предложения с благодарностью!