RRULE需要特定的信息,以确定时区在标准时间和夏令时之间的变化。这些信息最初来自Olson数据库,我怀疑它在NSTimeZone类的数据属性中是可用的。但是我该如何得到这个属性的结构呢?
NSTimeZone的公共方法似乎不足以为时区转换生成完整的RRULE。
使用RDATE块而不是RRULE块创建ical会导致Exchange抱怨格式无效。
关于如何解决这个问题,有什么建议吗?
如果我没有错,那么您可以使用以下代码:https://github.com/FabienDiTore/ios-rrule_parser或https://github.com/jochenschoellig/RRULE-to-EKRecurrenceRule.
我最终创建了一个方法,该方法使用nextDaylightSavingTransitionAfterDate:
来查找相隔一年的转换日期(如果存在的话)。一旦找到这些,就会为每个创建一个NSDateComponents
对象,这样就可以比较日期来推断重复规则。我只考虑了发生在同一个月的比赛,然后检查了一周中同一天的同一天号码。如果是一周中的同一天,我会检查该月内工作日的正常性来创建规则。