【发布时间】:2022-07-24 23:27:45
【问题描述】:
我有一个包含以下内容的 XML 元素:
<lastModified>2019-10-09T19:20:45.677+02:00</lastModified>
这映射到 Java 的 XMLGregorianCalendar。
我需要将此值转换为适当的 java.time 实例。
我对哪个 java.time 类是这个 XMLGregorianCalendar 值的“正确”(即无损)表示有点困惑。
我想应该是ZonedDateTime 还是OffsetDateTime 更好的选择?
【问题讨论】:
-
这取决于很多。
ZonedDateTime是一个选项,但由于XMLGregorianCalendar所谓的 timezone 不仅仅是 UTC 偏移量,我更倾向于OffsetDateTime。但是,XMLGreforianCalendar中的任何字段都可能未定义,因此取决于在某些情况下的具体使用LocalDate、LocalDateTime或任何 java.time 日期或时间类可能是合适的。 -
好吧,事实证明你必须使用
OffsetDateTime,因为你的String2019-10-09T19:20:45.677+02:00不包含一个区域,而是一个偏移量(几个区域可能有一个偏移量)。
标签: java java-time xmlgregoriancalendar