Как распарсить временную зону в DateTimeFormatter?

217
28 апреля 2018, 19:11

У меня есть String такого содержания:

2017-05-16T19:33:15+03:00

Мне нужно его распарсить в LocalDateTime. Решил делать это при помощи DateTimeFormatter. Паттерн получается такой:

private static final DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-ddTHH:mm:ss");

Трудности возникли с зоной. Как её прописать в этом паттерне, чтобы он схавал String?

Альтернативные варианты (не через DateTimeFormatter) приветствуются.

Answer 1

Стоит экранировать T в серединке: 'T'.
Вместе с таймзоной это будет выглядеть примерно так: "yyyy-MM-dd'T'HH:mm:ss[XXX][X]"

Код:

DateTimeFormatter dateTimeFormatter = DateTimeFormatter.ofPattern("yyyy-MM-dd'T'HH:mm:ss[XXX][X]");
String date = "2017-05-16T19:33:15+03:00";
System.out.println(dateTimeFormatter.parse(date));

Вывод в консоль:

{OffsetSeconds=10800, InstantSeconds=1494952395},ISO resolved to 2017-05-16T19:33:15

Похожий/аналогичный вопрос: Java DateTimeFormatter for time zone with an optional colon separator?

READ ALSO
Проблема с ListView и Sqlite

Проблема с ListView и Sqlite

В моем приложении для хранения данных используется SqliteВ таблице несколько столбцов, один из которых title

206
Проверить,есть ли информация в getIntent()

Проверить,есть ли информация в getIntent()

Есть условие,но нужно что-бы я знал,есть ли информация в getIntent, как это проверить?

175
Проблемы с фильтром для jList

Проблемы с фильтром для jList

Пытаюсь создать фильтр для jList в котором присутствуют элементы из базы данных SQLite в своих попытках и не без помощи гугла продвинулся на половинуУдалось...

223
Получить данные в приложении android

Получить данные в приложении android

Есть надобность получать данные, которые приходят в приложение (apk)

251