Google api 为什么谷歌日历API返回时区=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。 有人知道这个问题吗? 日历如何处理时区 无论何

我们的大多数客户都是美国人,但在将他们的谷歌日历与我们的服务连接后,我们阅读了timeZone=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
    }
}