gpt4 book ai didi

java - 尝试使用适用于 Java 的 Google Calendar API v3 创建全天 Activity 会导致错误

转载 作者:塔克拉玛干 更新时间:2023-11-03 04:13:51 25 4
gpt4 key购买 nike

我可以使用 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 的方法:Date日期、TimeZone时区长值日期值长值,整数 tzShift字符串值

我用什么方法创建 DateTime,我可以使用 setDate(),即 new EventDateTime().setDate(...)?

有人有经过测试的代码片段吗?为什么 Google 没有对此进行记录?

ps 有趣的是,当从 Google 读取事件时,使用 getDate() 会导致定时事件异常,而 getDateTime() 会导致全天事件异常。需要对全天事件使用 getDate(),对定时事件使用 getDateTime()。

最佳答案

已修复。

要创建全天事件,您必须使用 setDate() 并使用字符串创建 DateTime 对象(我通过格式化 Date 对象创建的)。代码:

    Date startDate = new Date(); // Or a date from the database
Date endDate = new Date(startDate.getTime() + 86400000); // An all-day event is 1 day (or 86400000 ms) long

DateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd");
String startDateStr = dateFormat.format(startDate);
String endDateStr = dateFormat.format(endDate);

// Out of the 6 methods for creating a DateTime object with no time element, only the String version works
DateTime startDateTime = new DateTime(startDateStr);
DateTime endDateTime = new DateTime(endDateStr);

// Must use the setDate() method for an all-day event (setDateTime() is used for timed events)
EventDateTime startEventDateTime = new EventDateTime().setDate(startDateTime);
EventDateTime endEventDateTime = new EventDateTime().setDate(endDateTime);

event.setStart(startEventDateTime);
event.setEnd(endEventDateTime);

关于java - 尝试使用适用于 Java 的 Google Calendar API v3 创建全天 Activity 会导致错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16372033/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com