我正在使用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全天活动的例子,但我找不到任何适当的文件(可能找错了地方),而我发现的内容似乎不一致。
我想知道的是,这是与时区有关还是输出不正确? 什么应该开始和结束时间为一整天的活动,或是有一个关键的"全天活动"需要添加吗?
答案 0 :(得分:0)
不是100%确定iOS如何实现它,但RFC5545 3.6.1说:
[...]“DTEND”属性 对于“VEVENT”日历组件,指定非包含端 这件事。对于“VEVENT”日历组件的情况 指定具有DATE值类型但不是的“DTSTART”属性 “DTEND”或“DURATION”属性,事件的持续时间被采用 有一天。[...]
因此,在您的情况下,您应该尝试删除DTEND
属性。