Google Calendar API(Java) - 创建Google日历活动时的时间格式无效

时间:2014-10-10 13:06:14

标签: java google-calendar-api

我正在使用Java Google API客户端,而且我正在尝试创建Google日历事件。我的身份验证和日历服务初始化正常(我可以登录并获取我的日历事件) 。创建事件时会发生此问题。这是我的代码:

    Event event = new Event();

    event.setSummary( title );

    event.setStart( new EventDateTime().setDate( new DateTime( new Date() ) ) );
    event.setEnd( new EventDateTime().setDate( new DateTime( new Date() ) ) );

    return _calendarService.events().insert( GOOGLE_CALENDAR_ID, event ).execute();

这是我得到的错误:

  

com.google.api.client.googleapis.json.GoogleJsonResponseException:400错误请求{"代码" :400,"错误" :[{" domain" :"全球","消息" :"无效的值:\" T \"发现,只能解析裸日期字符串:2014-10-10T15:58:06.165 + 03:00","原因" :"无效" }]," message" :"无效的值:\" T \"发现,只能解析裸日期字符串:2014-10-10T15:58:06.165 + 03:00" }

我在这里做错了什么想法?

2 个答案:

答案 0 :(得分:8)

问题是你正在做setDate()并传入一个dateTime(然后会在你的约会日期附加“T15:58:06.165”)。你可以EventDateTime().setDateTime()如果你想要一个定时活动,或者如果没有,你可以这样做:

new EventDateTime().setDate(new DateTime(true, new Date(), 0));

答案 1 :(得分:0)

正如documentation所说,如果未使用DateTime对象设置EventDateTime对象(在您的情况下未设置),则需要将时区传递给setTimeZone对象} 方法。

因此,要么创建新的DateTime对象,包括时区,要么创建新的EventDateTime对象,并在向服务器发送请求之前设置其时区。