在我们的 Gmail 插件中,我们使用 DateTimePicker 类。由于setTimeZoneOffsetInMins函数的文档,如果我们没有设置时区,日期选择器应该显示用户时区的时间。但是,当我们将初始日期插入小部件
widget.setValueInMsSinceEpoch(Date.now())
时,它会显示 UTC 时间而不是本地时间。检查谷歌日历 - 时区设置不是 UTC。
也许我们在这里遗漏了一些东西?
你的代码已经差不多了,你只需要方法
getTimeZoneOffset()
获取用户时区并添加 Class DateTimePicker Method setTimeZoneOffsetInMins()
.
这是代码:
function createHomepageCard() {
let userTimeZone = new Date().getTimezoneOffset()*-1
let cardSection1DatePTimePicker1 = CardService.newDateTimePicker()
.setFieldName('dateTime')
.setTitle('Pick a date and time')
.setValueInMsSinceEpoch(Date.now())
// Set your Value here.
.setTimeZoneOffsetInMins(userTimeZone)
let cardSection1 = CardService.newCardSection()
.addWidget(cardSection1DatePTimePicker1);
let card = CardService.newCardBuilder()
.addSection(cardSection1)
.build();
return card;
}
这是示例输出:
参考: