从Google日历获取事件时获取无效的日期时间异常

时间:2013-03-26 05:48:36

标签: java google-calendar-api

嗨,我根据日期时间检索事件。当iam将日期时间作为查询从google日历获取事件以获得低于异常时。

 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)

请有人建议如何解决此问题

1 个答案:

答案 0 :(得分:2)

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

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

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