OffsetDateTime to ZonedDateTime - with specific ZoneId
我们创建了一个DateTime类来保存库中的日期时间。 该值通常来自SQL数据库(UTC)或XML(可以有偏移量)。 但它也可以是具有明确时区的日期时间(如丹佛)。
在我们的课程中,我们认为这是一个OffsetDateTime,我认为这是最好的,因为98%的时间我们得到一个已知偏移的明确瞬间,没有区域。
当用ZonedDateTime初始化时,我想我们将它保存为OffsetDateTime并保存ZoneId。 然后,仅针对我们需要ZonedDateTime对象(转换为显示字符串)的情况,如果我们有ZoneId,则将其应用于OffsetDateTime.toZonedDateTime()。 这样我们在显示为字符串时为'z'值获得"MST"而不是"-0700"。
如何使用OffsetDateTime中的特定ZoneId创建ZonedDateTime?
解决您提出的具体问题;
1 2 3 | ZoneId mst = ZoneId.ofOffset("UTC", ZoneOffset.ofHours(-7)); OffsetDateTime mstOffsetDateTime = OffsetDateTime.now(mst); ZonedDateTime mstZonedDateTime = mstOffsetDateTime.atZoneSameInstant(mst); |
但是,我不确定您为什么要在