Неверное время при импорте события ICS - PullRequest
0 голосов
/ 02 июля 2018

У меня есть .ics файл со следующим кодом iCalendar:

BEGIN:VCALENDAR

PRODID;X-RICAL-TZSOURCE=TZINFO:-//Company Name//NONSGML example.co
 m//EN
CALSCALE:GREGORIAN
VERSION:2.0
METHOD:PUBLISH

BEGIN:VTIMEZONE
TZID;X-RICAL-TZSOURCE=TZINFO:America/Los_Angeles
BEGIN:DAYLIGHT
DTSTART:20180311T020000
RDATE:20180311T020000
TZOFFSETFROM:-0800
TZOFFSETTO:-0700
TZNAME:PDT
END:DAYLIGHT
END:VTIMEZONE

BEGIN:VEVENT
CREATED;VALUE=DATE-TIME:20180622T002920Z
DTEND;TZID=America/Los_Angeles;VALUE=DATE-TIME:20180703T173000
DTSTART;TZID=America/Los_Angeles;VALUE=DATE-TIME:20180703T170000
DTSTAMP;VALUE=DATE-TIME:20180622T002920Z
ATTENDEE#<Client 1234 "Lorem Ipsum">
UID:id@example.com
DESCRIPTION:Super Secret Event
URL:https://example.com/path/id
SUMMARY:Super secret summary
ORGANIZER;CN=Tamer Shlash;CUTYPE=INDIVIDUAL;PARTSTAT=A
 CCEPTED:mailto:noreply@example.com
SEQUENCE:0
END:VEVENT

END:VCALENDAR

Однако, когда я загружаю файл на устройство Android и импортирую его, событие отключается на 1 час. Попытка на устройстве Mac или iPhone импортирует событие с правильным временем.

Есть идеи, почему у меня такое странное поведение на Android?

1 Ответ

0 голосов
/ 02 июля 2018

Ваше определение VTIMEZONE для Америки / Лос-Анджелеса является поддельным. Отсутствует стандартный компонент. Чтобы увидеть, как это должно выглядеть, просто пригласите себя на встречу от любого клиента и посмотрите на полученный файл ics.

Все работает на Mac / iOS, потому что эти клиенты, как правило, игнорируют фактическое определение и просто полагаются на TZID = America / Los_Angeles, чтобы сопоставить его с собственным определением.

...