Остальные ответы были прекрасные ответы в 2012 году Вот пример того, как делать с современными (2014) Java дата и время занятий:
пример
System.out.println("date de la requete est " + dateq);
DateTimeFormatter dtf = DateTimeFormatter
.ofPattern("EEE MMM dd HH:mm:ss xx uuuu", Locale.ROOT);
OffsetDateTime dateTime1 = OffsetDateTime.parse(dateq, dtf);
System.out.println("new date " + dateTime1);
Код был вдохновлен дубликата вопрос (как Я это вижу), How to convert Xml String date to int in java. В примере, строки из этого вопроса он печатает:
date de la requete est Tue Feb 08 12:30:27 +0000 2011
new date 2011-02-08T12:30:27Z
Q: (?) Я не могу использовать новые классы на Android
A: Да, вы можете. Для Android используйте backport, специально предназначенный для Android, ThreeTenABP. В противном случае для Java 6 и 7 используйте ThreeTen Backport.
Вопрос: Ваш код не работает для строки даты в этот вопрос!
A: (1) Если вы можете, избегайте аббревиатур с часовыми поясами из трех и четырех букв, таких как CEST. Многие из них неоднозначны, и интерпретация может даже варьироваться в зависимости от настройки текущего часового пояса JVM. CEST - это только летняя половина часового пояса, а не полный часовой пояс. (2) Если вы не можете получить строку без CEST
или аналогичной в ней, попробуйте использовать ZonedDateTime
вместо OffsetDateTime
и используйте zzz
в шаблоне формата, как в вопросе. Это работает в примере и производит 2012-04-08T16:37+02:00[Europe/Paris]
.
В: Как использовать новые классы?
A: Хорошее место для начала - Oracle Tutorial.
Вопрос: Locale.ROOT
??
A: Если ваша строка даты и времени исходит из определенного места в мире и на языке этого места, конечно, используйте соответствующий язык. Если это просто на английском языке, потому что компьютерные системы повсюду имеют тенденцию выводить английский, я предпочитаю использовать Locale.ROOT
для «локали нейтральной локали», например, говоря «не делайте ничего локального здесь».
Да. Второй 'd' –
Спасибо, но все же выдает то же исключение. – Domiik
Нет, это не так. Попробуйте перекомпилировать свой код после внесения изменений. (Если у вас нет какой-то странной проблемы с локалью) –