Часовой пояс в экспортируемом Google файле .ICS по умолчанию равен UTC.

У меня проблемы с экспортированным в Google файлом .ics и часовыми поясами. У меня есть список событий, которые я пытаюсь добавить в календарь групп Yahoo. Поскольку Yahoo требует файл .ics, я импортировал события в Google, используя .csv, а затем экспортировал календарь. События кажутся правильными в Google.

Когда я импортирую файл .ics в Yahoo, время событий указывается в часовом поясе UTC-0, а не в местном часовом поясе (American/New_York). Например, мое тестовое мероприятие начинается в 9 утра в моем календаре Google, но после импорта в Yahoo начинается в 14:00. Я читал об идентификаторах Олсона и конечных Z, в том числе «Примечания Эрика: исправление часового пояса ICS». Мои попытки применить эту информацию либо не дали никакого эффекта, либо отодвинули событие еще на 5 часов (7 вечера).

Это экспорт .ics моего тестового события:

BEGIN:VCALENDAR
PRODID:-//Google Inc//Google Calendar 70.9054//EN
VERSION:2.0
CALSCALE:GREGORIAN
METHOD:PUBLISH
X-WR-CALNAME:iCalTest
X-WR-TIMEZONE:America/New_York
X-WR-CALDESC:
BEGIN:VEVENT
DTSTART:20160118T140000Z
DTEND:20160118T160000Z
DTSTAMP:20160125T042448Z
UID:[email protected]
CREATED:20160125T042434Z
DESCRIPTION:
LAST-MODIFIED:20160125T042434Z
LOCATION:
SEQUENCE:0
STATUS:CONFIRMED
SUMMARY:Day of Service
TRANSP:OPAQUE
END:VEVENT
END:VCALENDAR

Что нужно добавить/изменить, чтобы это событие отображалось в 9 утра в календаре Yahoo?


person MSinclair    schedule 25.01.2016    source источник
comment
пара комментариев: X-WR-TIMEZONE не является стандартной функцией RFC5545, поэтому ваш пробег может варьироваться при его использовании. В качестве возможного быстрого исправления вы можете проверить, помогает ли добавление TZID к вашему свойству DTSTART, например DTSTART;TZID=America/New_York, в противном случае вам придется добавить компонент VTIMEZONE, чтобы соответствовать RFC5545.   -  person Auberon Vacher    schedule 25.01.2016


Ответы (1)


Вышеприведенное событие является действительным представлением события, начинающегося в 9 утра в Америке/Нью-Йорке. Вы уверены, что в календаре Yahoo, в который вы импортируете это событие, задан правильный часовой пояс? Просто импортировал его в календарь Yahoo, и он правильно представляет событие (в моем случае 15:00, так как я нахожусь в CET). Другими словами, он учитывает мои локальные настройки. Это в личном календаре Yahoo, а не в групповом.

Альтернативным представлением является использование местного времени с часовым поясом, и в этом случае вам необходимо удалить суффикс Zulu как в DTSTART, так и в DTEND.

DTSTART;TZID=America/New_York:20160118T090000
DTEND;TZID=America/New_York:20160118T110000
person Arnaud Quillaud    schedule 26.01.2016
comment
Спасибо за ответ и новое направление для поиска. Я обнаружил, что, хотя вы можете установить часовой пояс в календаре Yahoo Group (который у меня был), его официальный часовой пояс берется из личного календаря владельца группы, который установлен на GMT/ УНИВЕРСАЛЬНОЕ ГЛОБАЛЬНОЕ ВРЕМЯ. Я связался с владельцем и посмотрю, можно ли это исправить там. Я рассмотрел ваш вариант, но это означало бы редактирование всех событий, и я не уверен, что это стоит делать. - person MSinclair; 27.01.2016
comment
Учитывая, что проблема связана с часовым поясом отображения, альтернативное представление, скорее всего, все равно не решит вашу проблему. - person Arnaud Quillaud; 27.01.2016