我正在实现可以通过Calendar API v3 Client Library for Java.修补Google Calendar Event的客户端
方法:
com.google.api.services.calendar.Calendar.Events#patch
我面临的问题是,
start
实体中的end
和com.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"
}
}
希望对您有帮助。