iCal整日活动全天停播

时间:2014-12-02 14:20:50

标签: ios asp.net telerik icalendar rfc5545

我正在使用Telerik RadScheduler的一个非常旧版本,它将约会导出到一个ics文件,以便将它们提供给iPhone。

这是telerik代码:

 TimeZoneInfo localZone = TimeZoneInfo.Local;
 TimeSpan ts = localZone.BaseUtcOffset;
 return RadScheduler.ExportToICalendar(scheduler.Appointments, ts);`

我的服务器是GMT,我的iPhone是NZDT(+13),我的约会是以UTC格式存储的。

我有一些全天约会是午夜到新西兰元时间午夜。他们这样出口:

 BEGIN:VEVENT DTSTART:20141205T110000Z 
 DTEND:20141206T110000Z
 UID:20141202T140355Z-907 
 DTSTAMP:20141202T140355Z SUMMARY: Day Off
 DESCRIPTION:Own Day END:VEVENT

当它们显示在iPhone上时,它们不会显示为全天的事件,它们只是作为约会在整个午夜到午夜的时间里空白。

如果错误的话,我非常愿意重新写自己的讽刺,但我不知道它应该是什么。我搜索谷歌搜索iCal全天活动的例子,但我找不到任何适当的文件(可能找错了地方),而我发现的内容似乎不一致。

我想知道的是,这是与时区有关还是输出不正确? 什么应该开始和结束时间为一整天的活动,或是有一个关键的"全天活动"需要添加吗?

1 个答案:

答案 0 :(得分:0)

不是100%确定iOS如何实现它,但RFC5545 3.6.1说:

  

[...]“DTEND”属性         对于“VEVENT”日历组件,指定非包含端         这件事。对于“VEVENT”日历组件的情况         指定具有DATE值类型但不是的“DTSTART”属性         “DTEND”或“DURATION”属性,事件的持续时间被采用         有一天。[...]

因此,在您的情况下,您应该尝试删除DTEND属性。