google-api-ruby-客户端设置错误的事件起止时间
google-api-ruby-client setting wrong event start and end time
我使用 google-api-ruby-client 来更新事件。当我提供时区为 "EUROPE/LONDON" 的开始和结束日期时间时,事件已成功保存,但 returns 事件的开始和结束时间位于太平洋时区,偏移量为 -0700 +0000 因此事件的错误时间。您可以看到下面的部分响应显示了错误的时间偏移:
Success - #<Google::Apis::CalendarV3::Event:0x005638691b3dc8
@end=
#<Google::Apis::CalendarV3::EventDateTime:0x00563869199ec8
@date_time=Mon, 23 Apr 2018 04:45:00 -0700,
@time_zone="Europe/London">,
@start=
#<Google::Apis::CalendarV3::EventDateTime:0x00563869177e90
@date_time=Mon, 23 Apr 2018 03:45:00 -0700,
@time_zone="Europe/London">
>
这是进行 api 调用的方法:
def service
secrets = setup_credentials
service = Google::Apis::CalendarV3::CalendarService.new
service.client_options.application_name = 'Quickstart'
service.authorization = secrets.to_authorization
event_id = "yyyzzzzzzxxxxx"
date_string = "2018-4-23 10:45AM"
date = DateTime.parse(date_string)
end_date = (date + 1.hour)
event = {
summary: "hype event",
start: {date_time: date, time_zone: "Europe/London"},
end: {date_time: end_date, time_zone: "Europe/London"}
}
service.update_event('primary', event_id, event, send_notifications: true)
end
有人知道如何让 google api 使用我指定的 time_zone 吗?
我正在传递一个包含时区的日期时间对象,例如 2018 年 4 月 23 日星期一 10:45:00 +0000。即偏移+0000表示时区。这意味着 Google Api 忽略了我传递给 api 的自定义时区值。为避免疑义,这里是自定义时区值:time_zone="Europe/London"。要使 Google 使用自定义时区,请按照以下步骤操作。
从日期时间对象中删除时区/偏移量,此外,通过调用 [=14] 将格式更改为此 "2018-04-23T10:45:00" =]start_date.strftime('%FT%T') 其中 start_date 是包含日期时间对象的变量,如 2018 年 4 月 23 日,星期一 10:45:00 +0000.
我使用 google-api-ruby-client 来更新事件。当我提供时区为 "EUROPE/LONDON" 的开始和结束日期时间时,事件已成功保存,但 returns 事件的开始和结束时间位于太平洋时区,偏移量为 -0700 +0000 因此事件的错误时间。您可以看到下面的部分响应显示了错误的时间偏移:
Success - #<Google::Apis::CalendarV3::Event:0x005638691b3dc8
@end=
#<Google::Apis::CalendarV3::EventDateTime:0x00563869199ec8
@date_time=Mon, 23 Apr 2018 04:45:00 -0700,
@time_zone="Europe/London">,
@start=
#<Google::Apis::CalendarV3::EventDateTime:0x00563869177e90
@date_time=Mon, 23 Apr 2018 03:45:00 -0700,
@time_zone="Europe/London">
>
这是进行 api 调用的方法:
def service
secrets = setup_credentials
service = Google::Apis::CalendarV3::CalendarService.new
service.client_options.application_name = 'Quickstart'
service.authorization = secrets.to_authorization
event_id = "yyyzzzzzzxxxxx"
date_string = "2018-4-23 10:45AM"
date = DateTime.parse(date_string)
end_date = (date + 1.hour)
event = {
summary: "hype event",
start: {date_time: date, time_zone: "Europe/London"},
end: {date_time: end_date, time_zone: "Europe/London"}
}
service.update_event('primary', event_id, event, send_notifications: true)
end
有人知道如何让 google api 使用我指定的 time_zone 吗?
我正在传递一个包含时区的日期时间对象,例如 2018 年 4 月 23 日星期一 10:45:00 +0000。即偏移+0000表示时区。这意味着 Google Api 忽略了我传递给 api 的自定义时区值。为避免疑义,这里是自定义时区值:time_zone="Europe/London"。要使 Google 使用自定义时区,请按照以下步骤操作。
从日期时间对象中删除时区/偏移量,此外,通过调用 [=14] 将格式更改为此 "2018-04-23T10:45:00" =]start_date.strftime('%FT%T') 其中 start_date 是包含日期时间对象的变量,如 2018 年 4 月 23 日,星期一 10:45:00 +0000.