Google api 为什么谷歌日历API返回时区=UTC,尽管它是';不对吗?
我们的大多数客户都是美国人,但在将他们的谷歌日历与我们的服务连接后,我们阅读了timeZone=UTC:Google api 为什么谷歌日历API返回时区=UTC,尽管它是';不对吗?,google-api,google-calendar-api,Google Api,Google Calendar Api,我们的大多数客户都是美国人,但在将他们的谷歌日历与我们的服务连接后,我们阅读了timeZone=UTC: https://www.googleapis.com/calendar/v3/users/me/calendarList?minAccessRole=owner&access_token=<ACCSES TOKEN> } 很多用户都会遇到这种情况,我们非常确定他们的日历实际上没有设置为UTC,但Google始终返回UTC。 有人知道这个问题吗? 日历如何处理时区 无论何
https://www.googleapis.com/calendar/v3/users/me/calendarList?minAccessRole=owner&access_token=<ACCSES TOKEN>
}
很多用户都会遇到这种情况,我们非常确定他们的日历实际上没有设置为UTC,但Google始终返回UTC。
有人知道这个问题吗?
日历如何处理时区
无论何时创建事件,日历都会将其从时区转换
到UTC时间,使用当前已知的转换规则。用一个
所有活动的通用时间,日历可以保存所有客人的
日历无论在哪个时区都是一致的。什么时候
我们在您的日历上显示事件,它将从UTC转换为
出现在你自己的时区
我的后端ruby代码:
time_zone = 'Europe/Moscow'
task_time_start_utc = task.date_time
task_time_start_moscow = task_time_start_utc.in_time_zone(time_zone)
task_time_end_utc = task_time_start_utc + task.duration.minutes
task_time_end_moscow = task_time_end_utc.in_time_zone(time_zone)
event_property = {
summary: task.name,
location: "#{task.lat} #{task.lng}",
description: string_work_times,
start: {
date_time: task_time_start_moscow.to_formatted_s(:iso8601),
time_zone: time_zone
},
end: {
date_time: task_time_end_moscow.to_formatted_s(:iso8601),
time_zone: time_zone
}
}
您是否已确认他们的日历不是UTC格式?也许他们从未登录过谷歌日历,因此从未设置时区。是的。实际上,我在自己的日历连接上获得了utc,尽管它不是utc。关于我们的大多数用户,我不能确定。tgrre是一种不同的了解方式吗?API返回的值应与日历设置屏幕中“日历时区:”旁的值相对应(在“日历>日历设置”旁下拉)。
time_zone = 'Europe/Moscow'
task_time_start_utc = task.date_time
task_time_start_moscow = task_time_start_utc.in_time_zone(time_zone)
task_time_end_utc = task_time_start_utc + task.duration.minutes
task_time_end_moscow = task_time_end_utc.in_time_zone(time_zone)
event_property = {
summary: task.name,
location: "#{task.lat} #{task.lng}",
description: string_work_times,
start: {
date_time: task_time_start_moscow.to_formatted_s(:iso8601),
time_zone: time_zone
},
end: {
date_time: task_time_end_moscow.to_formatted_s(:iso8601),
time_zone: time_zone
}
}