【发布时间】:2019-01-31 13:48:22
【问题描述】:
我们创建了一个 DateTime 类,用于在我们的库中保存一个日期时间。该值通常来自 SQL 数据库(因此 UTC)或 XML(可以有偏移量)。但它也可以是具有明确时区的日期时间(如丹佛)。
在我们的类中,我们将其作为一个 OffsetDateTime ,我认为这是最好的,因为 98% 的时间我们都得到一个具有已知偏移量且没有区域的明确瞬间。
当它使用 ZonedDateTime 初始化时,我想我们将其保存为 OffsetDateTime 并保存 ZoneId。然后,仅在我们需要 ZonedDateTime 对象(转换为字符串以进行显示)的情况下,如果我们有 ZoneId,请将其应用于 OffsetDateTime.toZonedDateTime()。这样,在显示为字符串时,我们得到的“z”值是“MST”而不是“-0700”。
如何从 OffsetDateTime 创建具有特定 ZoneId 的 ZonedDateTime?
【问题讨论】:
-
atZoneSimilarLocal 不是您要找的吗?
-
几行代码比这种冗长的解释要容易得多。