0

嗨,我正在根据 datetime 检索事件。当我通过日期时间作为查询以从谷歌日历获取事件时低于异常。

 private static void dateRangeQuery(CalendarService service) throws ServiceException,
              IOException {
          DateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd-HH:mm");
           //get current date time with Date()
           Date date = new Date();
           System.out.println(dateFormat.format(date));

           //get current date time with Calendar()
           Date dt = Calendar.getInstance().getTime();
           //System.out.println(dateFormat.format(cal.getTime()));
          // System.out.println(cal.getTime());
          DateTime startTime =  DateTime.parseDateTime(dateFormat.format(dt));
          Calendar cal2 = Calendar.getInstance();
          cal2.add(Calendar.MINUTE, 20);
           System.out.println(dateFormat.format(cal2.getTime()));
           System.out.println(cal2.getTime());
          DateTime endTime =  DateTime.parseDate(dateFormat.format(cal2.getTime()));

            CalendarQuery myQuery = new CalendarQuery(eventFeedUrl);
            myQuery.setMinimumStartTime(startTime);
            myQuery.setMaximumStartTime(endTime);

            // Send the request and receive the response:
            CalendarEventFeed resultFeed = service.query(myQuery,
                CalendarEventFeed.class);

            //System.out.println("Events from " + startTime.toString() + " to "
            //    + endTime.toString() + ":");
            System.out.println();
            for (int i = 0; i < resultFeed.getEntries().size(); i++) {
              CalendarEventEntry entry = resultFeed.getEntries().get(i);
              System.out.println("\t" + entry.getTitle().getPlainText());
            }
            System.out.println();
          }

以下例外:

Exception in thread "main" java.lang.NumberFormatException: Invalid date/time format.
    at com.google.gdata.data.DateTime.parseDateTime(DateTime.java:303)
    at GoogleCalender.dateRangeQuery(GoogleCalender.java:185)
    at GoogleCalender.main(GoogleCalender.java:115)

请任何人都可以建议如何解决这个问题

4

1 回答 1

2

预期的 XML dateTime 模式DateTime.parseDateTime()[-]CCYY-MM-DDThh:mm:ss[Z|(+|-)hh:mm]

因此,应使用 SimpleDateFormatyyyy-MM-dd'T'HH:mm:ss模式(未经测试)格式化日期。

但更简单的方法是简单地使用DateTime以 ajava.util.Date作为参数的构造函数,而不是将 Date 转换为 String,然后将 Date 转换为 DateTime。

于 2013-04-07T16:12:53.827 回答