答案 0 :(得分:1)
在健全性后端中,所有datetime values都存储为UTC。
例如happensOn: '2019-05-17T21:05:00.000Z'
。
但是,输入字段呈现的时间戳是从浏览器timzone中看到的。因此,如果您的浏览器时区在世界标准时间之后2个小时,则2019-06-29T19:00:00.000Z
将呈现为2019-06-29 21:00
。
在您的情况下,如果您希望Program
文档使用浏览器的本地时间而不是UTC值到preview,则可以通过获取存储的UTC值并创建本地化的字符串表示形式来覆盖预览。 date-fns可能会有所帮助:
const format = require('date-fns/format')
const utcDate = sanityEvent.happensOn // '2019-05-17T21:05:00.000Z'
const stringToDisplay = format(new Date(utcDate), "HH:mm") // '23:05'
然后您可以在文档的preview中使用stringToDisplay
。
我绝对可以看到此行为是意外的,但是我不确定100%是最佳/正确的行为。任何建议,不胜感激!