iCal整天提供全天的活动
我正在使用Telerik RadScheduler的一个非常旧的版本,将约会导出到一个ics文件,以便他们可以被馈送到iPhone。
这是telerik代码:
TimeZoneInfo localZone = TimeZoneInfo.Local; TimeSpan ts = localZone.BaseUtcOffset; return RadScheduler.ExportToICalendar(scheduler.Appointments, ts);`
我的服务器在GMT,我的iPhone在NZDT(+13),我的约会存储在UTC。
我有一些全天约会午夜到午夜NZDT时间。 他们是这样出口的:
BEGIN:VEVENT DTSTART:20141205T110000Z DTEND:20141206T110000Z UID:20141202T140355Z-907 DTSTAMP:20141202T140355Z SUMMARY: Day Off DESCRIPTION:Own Day END:VEVENT
当他们在iPhone上显示时,他们不会显示为全天事件,他们只是在午夜到午夜作为约会空白。
如果是错的,我很愿意重新编写自己的东西,但是我不知道应该是什么。 我已经search谷歌iCal全天事件的例子,但我找不到任何适当的文件(也许看错了地方),我发现似乎是不一致的。
我想知道的是,这是与时区有关,还是输出不正确? 全天事件的开始和结束时间是什么,或者是否需要添加“全天事件”的关键?
不是100%确定iOS实现它,但RFC5545 3.6.1说:
[…]“VEVENT”日历组件的“DTEND”属性指定事件的非包含结束。 对于“VEVENT”日历组件指定“DTSTART”属性,并且date值types为“DTEND”或“DURATION”属性的情况,该事件的持续时间将被视为一天。
所以在你的情况下,你应该尝试删除DTEND
属性。