我已经构建了一个在Apple的日历中完美运行的iCal Feed。然后我尝试将其导入谷歌日历,时间都是五个小时,这是有道理的,因为我在美国/东部时区。我假设日历程序应该尊重我当地时代的时间,基于它们的格式化方式(它们没有时区或UTC标签),但这种情况并没有发生。所以,我在日历中添加了时区信息。
BEGIN:VCALENDAR
CALSCALE:GREGORIAN
METHOD:PUBLISH
PRODID:iCalendar-Ruby VERSION:2.0
BEGIN:VTIMEZONE
TZID:America/New_York
BEGIN:DAYLIGHT
DTSTART:19700308T020000
RRULE:FREQ=YEARLY;BYMONTH=3;BYDAY=2SU
TZNAME:EDT
TZOFFSETFROM:-0500
TZOFFSETTO:-0400
END:DAYLIGHT
BEGIN:STANDARD
DTSTART:19701101T020000
RRULE:FREQ=YEARLY;BYMONTH=11;BYDAY=1SU
TZNAME:EST
TZOFFSETFROM:-0400
TZOFFSETTO:-0500
END:STANDARD
END:VTIMEZONE
我删除了重新导入的日历,时间仍然关闭。标准事件如下所示:
BEGIN:VEVENT
DESCRIPTION:Justin M. is scheduled to work from 12 PM to 3 PM.
DTEND:20111103T150000
DTSTAMP:20111122T144545
DTSTART:20111103T120000
LOCATION:Museum of Unnatural History
SEQUENCE:0
SUMMARY:Justin M.
UID:2011-11-22T14:45:45+00:00_239255930@0a9a698e-854d-48e2-97d4-37ff0b28311 9
END:VEVENT
所以,我不确定Google日历为何遇到麻烦。它可能只是缓存URL而不是真正更新日历?还有什么我应该做的。
答案 0 :(得分:2)
您可以在每个事件日期指定特定时区,例如
DTSTART;TZID=America/New_York:20150218T133000
这样,Daylight Time将自动考虑,并且您在创建日历时不必将本地时间转换为UTC(Z)格式。请注意,如果解释ical文件的客户端没有正确设置其区域,您也可能会遇到时区问题。
答案 1 :(得分:1)
因此,我通过在每个事件时间结束时添加Z
来使用UTC时间。与日历中的时区信息相结合,Google正确转换时间 - 白天时间除外。那些仍然没有。如果我能弄明白为什么会更新。