Вопрос:

Преобразовать JAXBElement <XMLGregorianCalendar> в OffsetDateTime

java datetime xmlgregoriancalendar

7 просмотра

1 ответ

6 Репутация автора

Я пытаюсь преобразовать JAXBElement-XMLGregorianCalendar в offsetDateTime. Я могу сделать это, но я хочу конвертировать дату в определенном формате.

Код, который я использую для преобразования: calendarValue - 2016-03-25T00: 00: 00 + 05: 30, но мне нужно преобразовать тип в offsetDateTime, поэтому я выполняю преобразование ниже

calendarValue.toGregorianCalendar().getTime().toInstant().atOffset(ZoneOffset.UTC)

В ответ я получаю значение после преобразования как: 2016-03-24T18: 30: 00Z, в то время как я хочу преобразовать значение как: 2016-03-25T00: 00: 00 + 05: 30.

Может ли кто-нибудь, пожалуйста, помогите получить желаемое преобразование dateTime.

Автор: Roopam Gupta Источник Размещён: 11.08.2019 07:10

Ответы (1)


0 плюса

129814 Репутация автора

Преобразование XMLGregorianCalendarустаревшего объекта в другой устаревший класс GregorianCalendarв качестве промежуточного шага.

GregorianCalendar gc = myXMLGregorianCalendar.toGregorianCalendar() ;

Преобразовать в современный класс.

ZonedDateTime zdt = gc.toZonedDateTime() ;

Этот ZonedDateTimeобъект может удовлетворить ваши потребности. Но если вы хотите, чтобы тот же момент был настроен на UTC, просто извлеките Instant.

Instant instant = zdt.toInstant() ;

Если вам нужен более гибкий OffsetDateTimeкласс, примените смещение.

OffsetDateTime odt = instant.atOffset( ZoneOffset.UTC ) ;
Автор: Basil Bourque Размещён: 11.08.2019 07:41
Вопросы из категории :
32x32