我知道我已经问过类似的问题之前使用Java解析ISO8601日期字符串为日期,但是这是使用的SimpleDateFormat更具体的问题类。我已阅读文章Wiki ISO8601 Date。
我已经从具有日期和时间格式如下客户提供的XML文件:
2012-08-24T12:15:00 + 02:00
根据维基文章这是有效的,这是公平的。
给出以下解析此字符串的代码,将抛出ParseException,并显示消息“Unparseable date:”2012-08-24T12:15:00 + 02:00“”。
String inputDate = "2012-08-24T12:15:00+02:00";
String format = "yyyy-MM-dd'T'HH:mm:ssz";
SimpleDateFormat sdf = new SimpleDateFormat(format);
Date d = sdf.parse(inputDate);
问题在于时区说明符中的冒号。时区+02:00导致引发异常。 +0200工作正常。
问题是,是否可以使用SimpleDateFormat解析这种类型的字符串?
由于
Andez
你可能会觉得这很有用:http://www.java2s.com/Code/Java/Data-Type/ISO8601dateparsingutility.htm。值得检查http://stackoverflow.com/questions/2201925/converting-iso8601-compliant-string-to-java-util-date以及 –