Ответ 1
Похож на ошибку в commons-lang FastDateFormat
. Расскажите им об этом, и вы должны исправить в конце концов. До этого вы могли бы попробовать предварительно обработать даты и заменить "Z" на "+00"
У меня есть даты в формате 2008-12-23T00:00:00Z
. Это очень похоже на формат ISO 8601 с часовым поясом Zulu (UTC). Я, хотя следующий код проанализировал бы его (используя commons-lang):
String pattern = DateFormatUtils.ISO_DATETIME_TIME_ZONE_FORMAT.getPattern();
Date d = DateUtils.parseDate(dateToParse, new String[] { pattern });
Если я беру тот же шаблон (yyyy-MM-dd'T'HH:mm:ssZZ
), но удаляю часовой пояс, он работает.
Вы знаете, как я могу узнать часовой пояс Зулу? У меня есть доступ только к Java 1.4 и Jakarta commons-lang. No Joda Time для меня еще...
Похож на ошибку в commons-lang FastDateFormat
. Расскажите им об этом, и вы должны исправить в конце концов. До этого вы могли бы попробовать предварительно обработать даты и заменить "Z" на "+00"
Я думаю, что commons-lang использует встроенный DateFormat или SimpleDateFormat, который генерирует ParseException для вашей даты. Если все ваши входные строки заканчиваются конечным Z, вы можете использовать это:
java.text.DateFormat df = new java.text.SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss'Z'");
// explicitly set timezone of input if needed
df.setTimeZone(java.util.TimeZone.getTimeZone("Zulu"));
java.util.Date date = df.parse("2008-12-23T00:00:00Z");