ICS 时区不工作

人气:295 发布:2022-10-16 标签: timezone icalendar offset google-calendar-api

问题描述

我制作了一个 ICS 提要,其中包含一长串事件.我的时区似乎不起作用.

I have made an ICS feed containing a long list of events. My timezone does not seem to work.

在下面的示例中,您会看到我的活动应该在 07:55:00 开始并在 09:30:00 结束.这就是它应该在我的日历中显示的内容.相反,它显示 09:55:00 和 11:30:00 - 两个小时的偏移量.时区应设置为 Europe/Copenhagen 但这没有任何效果.

In the sample below you see that my event should start 07:55:00 and end 09:30:00. This is what it should show in my calendar. Instead it shows 09:55:00 and 11:30:00 - an offset of two hours. The timezone should be set to Europe/Copenhagen but this does not have any effect.

谁能告诉我如何才能达到正确的时间?

Can anyone tell me how I can achieve the right times?

BEGIN:VCALENDAR
PRODID:-//Google Inc//Google Calendar 70.9054//EN
VERSION:2.0
CALSCALE:GREGORIAN
METHOD:PUBLISH
X-WR-CALNAME:Test Calendar
X-WR-TIMEZONE:Europe/Copenhagen
X-WR-CALDESC:Test Calendar
BEGIN:VEVENT
DTSTART:20110926T075500Z
DTEND:20110926T093000Z
DTSTAMP:20111002T133505Z
UID:E9QNQ30EG-5SRB7-QQKL3-2JUUZ-477LBRV4IMSJ78
CREATED:20111002T133505Z
LAST-MODIFIED:20111002T133505Z
LOCATION:B34
SEQUENCE:3
SUMMARY:2abc3c Ma3 CD (B34)
TRANSP:OPAQUE
END:VEVENT
END:VCALENDAR

推荐答案

您已指定您的活动在 UTC 时间 07:55 开始 - 这就是最后的 Z 显示的内容.如果你希望它是本地时间,你不应该有 Z,你可能也应该在那里指定时区:

You've specified that your event starts at 07:55 in UTC - that's what the Z at the end shows. If you want it to be in local time, you shouldn't have the Z, and you should probably specify the time zone there too:

DTSTART;TZID=Europe/Copenhagen:20110926T075500
DTEND;TZID=Europe/Copenhagen:20110926T093000

或者,使用 Z 指定 UTC 开始和结束时间,但要考虑相关的时区差异 - 因此,此时在欧洲/哥本哈根 07:55 开始的事件实际上是 UTC 05:55.

Alternatively, specify the UTC start and end time using Z, but taking account for the relevant time zone difference - so an event that starts at 07:55 in Europe/Copenhagen at the moment is actually 05:55 in UTC.

576