我正在实现可以通过Calendar API v3 Client Library for Java.修补Google Calendar Event的客户端

方法:

com.google.api.services.calendar.Calendar.Events#patch


我面临的问题是,start实体中的endcom.google.api.services.calendar.model.Event字段是复杂的对象,需要构造一些东西:


com.google.api.client.util.DateTime
TimeZone


DateTime具有称为dateOnly的字段,根据事件是否是全天事件将其设置为true / false。问题来了。如果我只想更新日期,并且只从前端发送日期(没有标记是全天事件还是dateOnly适用),我就不能构造DateTime对象,因为我没有不知道是否应该将DateTime的构造函数与dateOnly设置为true或设置为false。

如果有要求,这是正确的。由于有了PATCH,我们可以更新特定字段而无需动用其余的内容。但是,在这种情况下,由于字段相当复杂,因此很难找到不更新dateOnly标志而是更新为update值或tzShift的方法。

我考虑每次进行补丁时都从Google加载事件。因此,我可以读取dateOnly标志并将其设置为旧值。有没有更方便的方法来解决此问题?

最佳答案

根据Events中的文档,没有找到dateOnly资源。
但是您可以使用补丁Events: patch使用以下选项

{
    "start": {
       "date": "2017-05-05",
       "dateTime": "",
       "timeZone": "America/Los_Angeles"
    },
    "end": {
       "date": "2017-05-06",
       "dateTime": "",
       "timeZone": "America/Los_Angeles"
    }
}


希望对您有帮助。

07-27 22:17