【发布时间】:2016-06-28 16:25:41
【问题描述】:
我有一个 xml 文件,其中有一个表示时间戳的字段。时间字段是可选的,因此没有组合的日期时间字段。使用 JAXB,我们将此字段映射到我们的 java 模型中的 XMLGregorianCalendar。
现在我的问题是如何在 xml 中也给出的日期将这个时间转换为正确的本地时间(比如欧洲/柏林夏令时)?
xml文件中的时间如下:
<timeField>14:20:00.0+02:00</timeField>
偏移量要么未指定(假定为本地时间),要么被指定为 UTC 的偏移量。
如果我尝试
xmlGregorianCalendarDate.toGregorianCalendar().getTime();
那么假定的时区是sun.util.calendar.ZoneInfo[id="GMT+02:00",offset=7200000,dstSavings=0,useDaylight=false,transitions=0,lastRule=null],不考虑夏令时。
相反,如果我使用xmlGregorianCalendarDate.toGregorianCalendar(timeZone).getTime();,那么它会完全丢弃来自 xml 的偏移量以支持指定的时区。
【问题讨论】:
-
你有日期字段吗?