活动通过API在Google日历中显示错误的时间
问题描述:
我创建了一个活动并且还通过了EST
时区。但在我的Google日历中,它在3小时后显示为时间偏移。活动通过API在Google日历中显示错误的时间
例如,我通过值
"start": {
"dateTime": "2017-10-27T15:00:00-04:00",
"timeZone": "EST"
},
"end": {
"dateTime": "2017-10-27T19:00:00-04:00",
"timeZone": "EST"
}
但在日历中显示的数值是:
"start": {
"dateTime": "2017-10-27T18:00:00-04:00",
"timeZone": "EST"
},
"end": {
"dateTime": "2017-10-27T22:00:00-04:00",
"timeZone": "EST"
}
这是严重的问题。任何人都可以请帮助我,谢谢。
答
有几件事情:
-
千万不要错过
EST
。使用tz identifier的完整Area/Locality
格式。- 虽然
EST
是一个有效的标识符,它固定为UTC-5。这仅仅是为了某些向后兼容的场景。 - 您给出的日期是夏令时,是UTC-4。
- 假设您的意思是美国东部时区,您应该通过
America/New_York
作为时区标识。
- 虽然
-
即使考虑到上述因素,您的输出结果实际上不应如上所示。
- 也许你只是在看日历,并没有考虑到日历的时区设置?
- See the
timeZone
calendar settings in the API docs
在我的代码,我转换我的sql.timestamp长转换为RFC3339的标准形式之前。这是否改变了时区?我们可以设置时区为Etc/GMT-5吗? –
这不是你在上面展示的东西,也不是。 –
正如你所说,我已经像你说的那样试过了,我已经把TimeZone设置为“America/New_York”,并且我通过api添加了该事件,但它仍然在错误的时间添加。日历的时区设置相应写或应该通过api设置它? –