API Календаря Google: обновить часовой пояс с UTC до «Азия / Токио» - PullRequest
0 голосов
/ 16 октября 2018

У меня проблемы с получением правильного часового пояса через API Календаря Google на Ruby on Rails.Я пользователь google-ruby-client.

результат:

#<CalendarEvent:0x00007ffa082f49f0
id: 7,
start_at: Tue, 23 Oct 2018 02:00:00 UTC +00:00,
end_at: Tue, 23 Oct 2018 03:00:00 UTC +00:00,
summary: "MTG",

код:

  calendar = Google::Apis::CalendarV3::Calendar.new({ discription: 'random', summary:(email.sub(/@.*/, "")+'-random')})
  service = Google::Apis::CalendarV3::CalendarService.new
  service.authorization = client

  # Generate calendar id
  _calendar = service.insert_calendar(calendar)

  now = Time.now.iso8601
  still = Time.now.since(1.month).iso8601
  items = service.fetch_all do |token|
    service.list_events('primary',
                          single_events: true,
                          order_by: 'startTime',
                          time_min: now,
                          time_max: still,
                          time_zone: 'Asia/Tokyo',
                          page_token: token)
  end

  items.each do |event|        
    calendar_event = CalendarEvent.new(
      uid: event.id,
      start_at: event.start.date_time,
      end_at: event.end.date_time,
      summary: event.summary,
    )
    calendar_event.save
  end

Я хочу получить подробную информацию о событии с часовым поясом Азии / Токио или UTC + 9h, так что у вас, ребята, есть какие-либоидеи по переполнению стека?

1 Ответ

0 голосов
/ 16 октября 2018

События установлены в часовом поясе самого календаря.Если вы сделаете calendar.get в самом календаре, вы увидите, какой часовой пояс установлен на него.

{
 "kind": "calendar#calendar",
 "etag": "\"ze8zJIc0rbkO4aY_gGX0swNYq0/WK1K2C9CsAxePbI13h8-KuIOLek\"",
 "id": "xxxxx@gmail.com",
 "summary": "xxxx@gmail.com",
 "timeZone": "Europe/Copenhagen",
 "conferenceProperties": {
  "allowedConferenceSolutionTypes": [
   "eventHangout"
  ]
 }
}

Так что при создании ваших мероприятий вам нужно будет взять часовой пояс календаря.учитывается при настройке времени события.Существует большое количество проблем, связанных с созданием событий с часовым поясом здесь

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...