有人能告诉我为什么世界上我有这个例外吗?
08-28 08:47:05.246:D / DateParser(4238):收到的用于解析的字符串是 2013-08-05T12:13:49.000Z
private final static String DATE_FORMAT_PATTERN = "yyyy-MM-dd'T'HH:mm:ss.SSSZ";
public static Date parseDate(String stringToParse) {
Date date = null;
try {
date = new SimpleDateFormat(DATE_FORMAT_PATTERN).parse(stringToParse);
} catch (ParseException e) {
Logger.logError(TAG, e);
}
return null;
}
08-28 08:47:05.246: E/DateParser(4238): Exception: java.text.ParseException: Unparseable date: "2013-08-05T12:13:49.000Z" (at offset 23)
答案 0 :(得分:56)
尝试使用
String DATE_FORMAT_PATTERN = "yyyy-MM-dd'T'HH:mm:ss.SSS'Z'"
末尾的Z
通常是时区偏移量。如果你不需要它,也许你可以将它放在两边。
答案 1 :(得分:11)
答案 2 :(得分:2)
时间字符串中的Z
不是有效的时区标识符,但您指定的时间格式需要时区标识符。更具体地说,它需要一个RFC 822 timezone标识符,通常为4位数。
答案 3 :(得分:0)
在Java-8中,您可以直接使用ISO_INSTANT中的ZonedDateTime
或Instant
ZonedDateTime.parse("2013-08-05T12:13:49.000Z")
Instant.parse("2013-08-05T12:13:49.000Z")