Подтвердить что ты не робот

Как я могу узнать часовой пояс Zulu в Java DateUtils.parseDate?

У меня есть даты в формате 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 для меня еще...

4b9b3361

Ответ 1

Похож на ошибку в commons-lang FastDateFormat. Расскажите им об этом, и вы должны исправить в конце концов. До этого вы могли бы попробовать предварительно обработать даты и заменить "Z" на "+00"

Ответ 2

Я думаю, что 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");