我可以使用 Java v3 Google Calendar API(根据 Google 网站上的示例代码)创建一个定时事件,但我需要创建一个全天事件。
我调用事件的setStart()和setEnd(),即
event.setStart(startEventDateTime);
event.setEnd(endEventDateTime);
这些方法需要和EventDateTime,即
EventDateTime startEventDateTime = new EventDateTime().setDateTime(startDateTime);
EventDateTime endEventDateTime = new EventDateTime().setDateTime(endDateTime);
我使用 setDateTime() 方法,因为 setDate() 会导致 404 错误。
setDateTime() 需要一个 com.google.api.client.util.DateTime 对象,通过做
DateTime startDateTime = new DateTime(startDate, TimeZone.getTimeZone("UTC"));
DateTime endDateTime = new DateTime(endDate, TimeZone.getTimeZone("UTC"));
传入 TimeZone 会给出一个时间元素,因此它不是一整天的事件。
我尝试将 dateOnly 设置为 true 但这会产生错误:
DateTime startDateTime = new DateTime(true, startDate.getTime(), 0);
我无法使用其他创建 DateTime 的方法:日期日期、时区长值日期值长值、整数 tzShift 字符串值
我用哪种方式创建 DateTime,我可以使用 setDate(),即 new EventDateTime().setDate(...)?
有人有测试过的代码片段吗?为什么谷歌没有记录这一点?
ps 有趣的是,当从 Google 读取事件时,使用 getDate() 会导致定时事件异常,而 getDateTime() 会导致全天事件异常。需要将 getDate() 用于全天事件,将 getDateTime() 用于定时事件。