Google Calendar API:事件结束时间减少1天

时间:2011-01-02 13:25:26

标签: java datetime google-calendar-api

我正在尝试在自己的Java类中使用Google Calendar API。不幸的是,新创建的事件的endTime(在这种情况下休假)似乎减少了1天。

示例:我使用startTime 2011-01-01和endTime 2011-01-05创建一个事件,该事件将在2011-01-01至2011-01-04的Google日历中显示。

这是我到目前为止所得到的(只是日期部分,取自Google Calendar API Developer's Guide,更改为日期,因为我想要全天活动):

...
CalendarEventEntry myEntry = new CalendarEventEntry();

DateTime startTime = DateTime.parseDate("2011-01-01");  
DateTime endTime = DateTime.parseDate("2011-01-05");

When eventTimes = new When();
eventTimes.setStartTime(startTime);
eventTimes.setEndTime(endTime);
myEntry.addTime(eventTimes);

Reminder reminder = new Reminder();
reminder.setMethod(Method.NONE);
myEntry.getReminder().add(reminder);

CalendarEventEntry insertedEntry = myService.insert(postUrl, myEntry);
...

这可能与时区问题有某种关系吗? (我来自德国)

1 个答案:

答案 0 :(得分:0)

如果您未向DateTime.parseDate()提供时间,则默认为午夜。从1日午夜开始到5日午夜结束的活动将在界面中显示为从1日到4日的全日活动。该时间段不包括 on the 5th的任何时间,因此它不会显示为5日。

您需要将结束时间设置为2011-01-05 23:59,或者将一天添加到结束日期。