首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >OffsetDateTime to ZonedDateTime -具有特定的ZoneId

OffsetDateTime to ZonedDateTime -具有特定的ZoneId
EN

Stack Overflow用户
提问于 2019-01-31 13:48:22
回答 1查看 4.7K关注 0票数 2

我们创建了一个DateTime类来保存库中的日期时间。值通常来自SQL数据库(所以UTC)或XML (可以有偏移量)。但是它也可以是一个带有显式时区的日期时间(比如丹佛)。

在我们的类中,我们把它作为一个OffsetDateTime来保存,我认为这是最好的,因为98%的时间我们得到了一个显式的瞬间,有一个已知的偏移量,并且没有区域。

当使用ZonedDateTime初始化它时,我想我们将它保存为OffsetDateTime并保存ZoneId。然后,只有在我们想要一个ZonedDateTime对象(转换为一个字符串以显示)的情况下,如果我们有ZoneId,那么将它应用到OffsetDateTime.toZonedDateTime()。这样,我们就可以得到"MST“而不是"-0700”作为“z”值显示为字符串。

如何使用来自ZonedDateTime的特定ZoneId创建OffsetDateTime?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-01-31 14:20:05

解决你提出的具体问题;

代码语言:javascript
复制
ZoneId mst = ZoneId.ofOffset("UTC", ZoneOffset.ofHours(-7));
OffsetDateTime mstOffsetDateTime = OffsetDateTime.now(mst);
ZonedDateTime mstZonedDateTime = mstOffsetDateTime.atZoneSameInstant(mst);

但是,我不知道为什么要将时间戳保存在OffsetDateTime中。如果您跟踪您的ZoneId,您可以将时间戳保存在UTC中,并按照后端/前端(或任何其他客户端)的要求转换为任何格式。将日期时间存储为UTC将使您具有更大的灵活性。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/54462037

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档