Java Google Calendars API-setTimeMax导致错误

Java Google Calendars API-setTimeMax导致错误,java,google-calendar-api,Java,Google Calendar Api,我正在尝试使用JavaAPI(jar版本v3-rev9-1.7.0-beta)从google日历中检索事件列表 这个代码很好用 Events e = service.events().list("primary"). setMaxResults(3). execute(); 其中服务是日历对象 但是,如果我添加一个setTimeMin或setTimeMax参数,如下所示 Date now = new java.util.Date

我正在尝试使用JavaAPI(jar版本v3-rev9-1.7.0-beta)从google日历中检索事件列表

这个代码很好用

Events e = service.events().list("primary").
                setMaxResults(3).
                execute(); 
其中服务是日历对象

但是,如果我添加一个setTimeMin或setTimeMax参数,如下所示

Date now = new java.util.Date();
Events e = service.events().list("primary").
                setTimeMin(new DateTime(now)).
                setMaxResults(3).
                execute(); 
它返回一条失败消息,“请求错误”

(请注意,在这个版本中,setTime函数采用google DateTime对象。我也尝试了jar的早期版本,它采用字符串,但收到了相同的消息)

所以我只是想知道是否有人成功地使用了这些函数——也许不应该以这种方式调用它们?有没有办法获得关于错误的更多细节


谢谢:)

我也遇到了这个问题。似乎DateTime.toString()或DateTime.toString.FC3339()方法的格式作为setTimeMin()的输入不正确

DateTime.toString()格式为:
2012-07-04T21:02:16.590
yyyy-MM-dd'HH:MM:ss.SSS(简化格式符号)

它期望的格式似乎接近于格式(不管是什么):
2012-07-04T21:02:16Z(祖鲁,格林威治时间)
2012-07-04T21:02:16-07:00(mst,-7小时)
2012-07-04T21:02:16-0700(在时区中没有冒号也可以使用)
yyyy-MM-dd'HH:MM:ssZ(简化格式)

可以使用SimpleDataFormat进行格式化:

SimpleDateFormat FMT_TIME=new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ssZ");
String fromTimeStr=FMT_TIME.format(new Date());
Events evts = client.events().list(cal.getUid()).setTimeMin(fromTimeStr)
             .execute();
现在,由于我使用的是较旧的API,如果唯一的方法是setTimeMin(DateTime),我不确定这将如何实现,但这会让您更接近

谷歌文档或来源应该在某处提到这一点

DateTime startTime = new DateTime(new Date(), TimeZone.getDefault());

对问题进行排序

文档没有帮助。谷歌似乎已经将其编码为setTimeMin(DateTime-timeMin)和setTimeMax(DateTime-timeMax),但文档中说setTimeMin(String-timeMin)和setTimeMax(String-timeMax),我们知道为什么这种方式有效,而不是原来的方式吗?从日历对象转换时,我遇到了相同的错误。