我正在尝试将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转换。
答案 0 :(得分:1)
:
将:eof
旧对象转换为另一个旧类myXMLGregorianCalendar
.toGregorianCalendar()
.toZonedDateTime()
.format(
DateTimeFormat.ISO_OFFSET_DATE_TIME
)
作为中间步骤。
XMLGregorianCalendar
转换为现代班。
GregorianCalendar
此GregorianCalendar gc = myXMLGregorianCalendar.toGregorianCalendar() ;
对象可以满足您的需求。
以所需的格式生成表示当前时刻值的字符串,尽管不幸的是,格式会掩盖时区的名称,这是有价值的信息。
ZonedDateTime zdt = gc.toZonedDateTime() ;
但是,如果您希望将同一时刻调整为UTC,只需提取ZonedDateTime
。
String output = zdt.format( DateTimeFormat.ISO_OFFSET_DATE_TIME ) ;
如果您需要更灵活的Instant
类,请应用偏移量。
Instant instant = zdt.toInstant() ;