我看了类似的主题,但它没有帮助我。我有ISO-8601日期类型,例如:2014-08-13T19:05:22.168083+00:00
。
我试着解析它:
public static Date parseISO8601(final String date) {
String fixedDate = date.replaceFirst("(\\d\\d[\\.,]\\d{3})\\d+", "$1");
DateFormat df = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss.SSSZ", Locale.ENGLISH);
try {
return df.parse(fixedDate);
} catch (ParseException e) {
e.printStackTrace();
}
return null;
}
但它会抛出异常。我不明白为什么?
错误信息:java.text.ParseException: Unparseable date: "2014-08-13T19:05:22.148+00:00"
答案 0 :(得分:2)
使用X
代替Z
作为时区,即:
new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss.SSSX", ...