【问题标题】:android: EXDATE format when adding a calendar eventandroid:添加日历事件时的EXDATE格式
【发布时间】:2013-01-09 10:50:12
【问题描述】:

在向 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 它应该出现吗?

【问题讨论】:

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


    【解决方案1】:

    正确的格式是:

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

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

    【讨论】:

    • 谢谢!那是我的问题,它在 UTC 中没有正确更改
    【解决方案2】:

    除了@kee23 的回答,下一个变体对多个 EXDATE 值有效:

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

    【讨论】:

      【解决方案3】:

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

      我刚刚意识到,在 android 中,您不能将 EXDATE 持久化到具有无限重复的事件,例如 RRULE:FREQ=DAILY。您需要限制出现次数,如RRULE:FREQ=DAILY;COUNT=600

      Google 没有记录这一点,如果您尝试使用 EXDATE 保持无休止的重复,则不会出现错误消息。就我而言,它只是默默地删除了 RRULE 和 DURATION。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2012-05-08
        • 1970-01-01
        • 1970-01-01
        • 2011-04-12
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多