【问题标题】:Invalid Timezone for Recurring event on Google Calendar API V3Google Calendar API V3 上重复事件的时区无效
【发布时间】:2014-06-21 12:17:24
【问题描述】:

我正在尝试使用 google 事件来操作某些特定的东西,我可以添加、删除、获取所有事件并为事件添加颜色,但是我有一个问题,每次我插入一个重复事件时,我都没有有效的时区消息,我不知道如何修复它:/

这是我的代码:

public void AddRecurringEvents(日历服务, Event createdEvent, 字符串规则、字符串摘要、字符串位置){

    Event event = new Event();
    // Define Date Time for each start and end time.
    DateTime start = DateTime.parseRfc3339("2014-09-30T10:00:00Z");
    DateTime end = DateTime.parseRfc3339("2014-09-30T10:25:00Z");

    event.setStart(new EventDateTime().setDateTime(start).setTimeZone(
            "Europe/Paris"));
    event.setEnd(new EventDateTime().setDateTime(end).setTimeZone(
            "Europe/Paris"));
    // Setting recurrence
    event.setRecurrence(Arrays.asList(rule));

    try {

        Event recurringEvent = service.events().insert("primary", event)
                .execute();
        System.out.println(createdEvent.getId());
    } catch (IOException e) {

        e.printStackTrace();
    }

}

任何想法如何解决这个问题?我的代码有问题吗...

谢谢

【问题讨论】:

  • 是的,我试图删除它,它给了我这个:{“code”:400,“errors”:[{“domain”:“global”,“message”:“缺少时区定义开始时间。”,“原因”:“必需”}],“消息”:“缺少开始时间的时区定义。” }

标签: api timezone google-calendar-api recurring-events


【解决方案1】:

试试这样的:

Event event = new Event();

event.setSummary(en.name);
event.setDescription(en.desc);
event.setStatus("confirmed");

ArrayList<String> recurrence = new ArrayList<String>();
recurrence.add("RRULE:FREQ=YEARLY;WKST=MO;"); 
event.setRecurrence(recurrence);

java.util.Calendar cal = java.util.Calendar.getInstance();
cal.set(en.year, en.month-1, en.day,0,0,0);

Date startDate = cal.getTime();
Date endDate = new Date(startDate.getTime()); // same Time

DateTime start = new DateTime(startDate, TimeZone.getTimeZone("Europe/Paris"));
event.setStart(new EventDateTime().setDateTime(start).setTimeZone("Europe/Paris"));

DateTime end = new DateTime(endDate, TimeZone.getTimeZone("Europe/Paris"));
event.setEnd(new EventDateTime().setDateTime(end).setTimeZone("Europe/Paris"));

Event createdEvent = client.events().insert( "primary", event).execute();

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-12-04
    • 2015-03-23
    • 1970-01-01
    相关资源
    最近更新 更多