Объект ZoneDateTime по умолчанию устанавливается в UTC

Привет, у меня есть объект даты в сопоставлении запросов моего контроллера. Объект принадлежит ZoneDateTime. Проблема заключается в анализе данных в ZoneDateTime, по умолчанию они преобразуются в UTC. Мне нужно сохранить информацию о часовом поясе. Есть ли способ справиться с этим.

 ex: 2018-06-10T12:00:00+0500

значение в моем контроллере:

 2018-06-10T07:00:00[UTC]

Я планирую использовать средство сопоставления объектов, чтобы исправить это при маршалинге данных в контроллере. Но я не уверен, что иду в правильном направлении.

Спасибо.


person Madie    schedule 23.08.2018    source источник
comment
Пожалуйста, не используйте тег [java-ee], когда у вас есть вопрос о классе в Java SE API, просто потому, что этот класс явно не является частью Java EE API.   -  person BalusC    schedule 23.08.2018
comment
Без кода я понятия не имею, извините. Пожалуйста, создайте минимальный, полный и проверяемый пример.   -  person Ole V.V.    schedule 23.08.2018
comment
Тщательно ищите Stack Overflow перед публикацией.   -  person Basil Bourque    schedule 23.08.2018


Ответы (1)


Строка, которую вы анализируете, не содержит информации о часовом поясе. Подходящим типом для использования является OffsetDateTime:

OffsetDateTime dt = OffsetDateTime.parse("2018-06-10T12:00:00+0500", 
            DateTimeFormatter.ofPattern("yyyy-MM-dd'T'HH:mm:ssX"))

Вы можете преобразовать это в ZonedDateTime, вызвав dt.toZonedDateTime().

person ernest_k    schedule 23.08.2018