您好,我正在根据日期时间检索事件。当我传递日期时间作为从 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)
请任何人建议如何解决此问题
最佳答案
DateTime.parseDateTime()
所期望的 XML 日期时间模式为 [-]CCYY-MM-DDThh:mm:ss[Z|(+|-)hh:mm ]
。
因此,应使用 SimpleDateFormat yyyy-MM-dd'T'HH:mm:ss
模式对日期进行格式化(未测试)。
但更简单的方法是简单地使用 DateTime
构造函数,该构造函数采用 java.util.Date
作为参数,而不是将 Date 转换为字符串,然后将日期转换为日期时间。
关于java - 从 Google 日历获取事件时出现无效日期/时间异常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15630219/