2013-03-26 130 views
0

嗨Iam基於日期時間檢索事件。當IAM傳遞日期時間作爲查詢獲取來自谷歌日曆的事件得到下面的異常。下面從谷歌日曆得到事件時得到無效的日期/時間異常

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) 

請任何人都可以提出如何解決這個問題

回答

2

的XML日期時間模式,通過DateTime.parseDateTime()預期,是[-]CCYY-MM-DDThh:mm:ss[Z|(+|-)hh:mm]

所以,日期應該使用SimpleDateFormat yyyy-MM-dd'T'HH:mm:ss模式格式化(未測試)。

但更簡單的方法是簡單地使用DateTime構造函數,它將java.util.Date作爲參數,而不是將日期轉換爲字符串,然後將日期轉換爲日期時間。