android:添加日历事件时的EXDATE格式

时间:2013-01-25 13:05:20

标签: android android-contentprovider android-calendar android-event

有人可以解释在向android日历添加事件时如何使用EXDATE吗?关于应该放置EXDATE的格式,文档很不清楚。 我尝试了很多格式,其中一些是:

values.put(Events.EXDATE, "TZID=Europe/London:20130116T080000");
values.put(Events.EXDATE, "20130116T080000Z");
values.put(Events.EXDATE, "20130116T080000");
values.put(Events.EXDATE, "20130116");

但它们都不起作用。 如果事件出现在RRULE,那么任何想法如何使某个事件不会出现在特定日期?

3 个答案:

答案 0 :(得分:5)

正确的格式是:

values.put(Events.EXDATE, "20130116T080000Z");

但是,您必须确保它处于UTC时间。我从PST开始遇到同样的问题,所以我只需要增加8个小时才能让它工作。

答案 1 :(得分:1)

除了@ kee23的答案外,下一个变量对多个 EXDATE 值有效:

contentValues.put(CalendarContract.Events.EXDATE, "20130116T080000Z,20130118T080000Z");

答案 2 :(得分:0)

我在@ kee23上添加了优秀而正确的答案:

我刚刚意识到在android中,你无法将EXDATE持久存储到无限重复的事件中,比如说RRULE:FREQ=DAILY。您需要限制出现次数,如RRULE:FREQ=DAILY;COUNT=600

谷歌没有记录这一点,如果您尝试使用EXDATE持续无休止的重复,则没有错误消息。在我的情况下,它只是默默地放弃了RRULE和DURATION。