Java 8 区域偏移 - 如何获取当前系统 UTC 偏移量

2022-09-02 23:01:14

我想获取系统的当前区域偏移
我试图这样做,但我找不到办法。
另外,我正在寻找解决方案,但我没有找到任何解决方案。
在Java中可以做到这一点吗?

编辑:
我的问题与此不同。我想知道当前的系统UTC,而不是如何在时区偏移表示或时区存储之间进行转换。


答案 1

您的请求由两部分组成:

  • “我的系统”的偏移量 - 因此您需要系统时区 -ZoneId.systemDefault()
  • “当前”偏移 - 因此您需要当前瞬间 -Instant.now()

这些使用 绑定在一起,以获得以下内容:ZoneRules

ZoneOffset o = ZoneId.systemDefault().getRules().getOffset(Instant.now());

为了简单起见,您可能希望使用:OffsetDateTime

ZoneOffset o = OffsetDateTime.now().getOffset();

这有效,因为同时使用和内部使用。OffsetDateTime.now()ZoneId.systemDefault()Instant.now()


答案 2

是的,有可能:

ZoneOffset.systemDefault().getRules().getOffset(Instant.now())

或者您可以将 Instant 实例替换为 LocalDateTime 实例:

ZoneOffset.systemDefault().getRules().getOffset(LocalDateTime.now())

推荐