Ответ 1
попробуйте использовать
String DATE_FORMAT_PATTERN = "yyyy-MM-dd'T'HH:mm:ss.SSS'Z'"
Z
в конце обычно является смещением часового пояса. Если вам это не нужно, возможно, вы можете сбросить его с обеих сторон.
Может кто-нибудь сказать мне, почему в мире я получил это исключение?
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)
попробуйте использовать
String DATE_FORMAT_PATTERN = "yyyy-MM-dd'T'HH:mm:ss.SSS'Z'"
Z
в конце обычно является смещением часового пояса. Если вам это не нужно, возможно, вы можете сбросить его с обеих сторон.
Используйте X
вместо Z
в конце строки формата:
yyyy-MM-dd'T'HH:mm:ss.SSSX
для разбора смещения часового пояса формата ISO-8601.
(Работает только если вы используете Java 7. См. этот вопрос).
Z
в вашей строке времени не является допустимым идентификатором часового пояса, но указанный вами формат времени ожидает идентификатора часового пояса. Более конкретно, он ожидает идентификатор часового пояса RFC 822, который обычно составляет 4 цифры.