Я пытаюсь проанализировать отметку времени в США/Алеутском. Это работало в прошлом, и я не мог понять, почему он больше не работает. Я бегу Java 1.8 обновление 72.Java 1.8 отказывается разбирать даты с часовым поясом US/Aleutian (HAST)?
код выглядит следующим образом:
try {
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ssz");
sdf.setTimeZone(TimeZone.getTimeZone("US/Aleutian"));
// the following line throws an parsing exception
Date d = sdf.parse("1969-12-31T13:00:00HAST");
System.out.println(sdf.format(d));
} catch (Exception e) {
e.printStackTrace();
}
... Date d = sdf.parse("1969-12-31T13:00:00HAST");
линия бросает исключение, но я не могу узнать, что случилось с ним:
java.text.ParseException: Unparseable date: "1969-12-31T13:00:00HAST"
at java.text.DateFormat.parse(Unknown Source)
Я уверен, что это сработало в прошлом. Я исследовал часовой пояс HAST, и он действителен. Я не знаю, почему это не работает для меня.
Может ли кто-нибудь узнать, что происходит? Если это сработает для вас, можете ли вы перечислить свою версию java, чтобы мы могли узнать, когда/когда это сломалось?
Спасибо!
'TimeZone.getTimeZone (« HAST »)' теперь возвращает GMT, который согласно [документации] (https://docs.oracle.com/javase/8/docs/api/java/util/TimeZone.html # getTimeZone-java.lang.String-) указывает, что запрошенный идентификатор TimeZone не был понят. Я не знаю, почему HAST больше не принимается. – VGR
Вау! Это странно ... Я не уверен, что это похоже на ошибку в самой Java. Но странно. Почему это будет удалено ?! o.O –
Я рекомендую использовать идентификатор вместо синонима: 'America/Adak' (вместо« US/Aleutian »), когда это возможно. –