我想获取系统的当前 ZoneOffset。
我尝试这样做,但找不到方法。
另外,我一直在寻找解决方案,但没有找到任何解决方案。
有可能在 Java 中做到这一点吗?
编辑:
我的问题与 this 不同.我想知道当前系统的 UTC,而不是如何在时区偏移表示或时区存储之间进行转换。
最佳答案
您的请求分为两部分:
- “我的系统”的偏移量 - 因此您需要系统时区 -
ZoneId.systemDefault()
- “当前”偏移量 - 因此您需要当前时刻 -
Instant.now()
这些使用 ZoneRules
绑定(bind)在一起,以获得以下内容:
ZoneOffset o = ZoneId.systemDefault().getRules().getOffset(Instant.now());
为简单起见,您可能希望使用 OffsetDateTime
:
ZoneOffset o = OffsetDateTime.now().getOffset();
之所以可行,是因为 OffsetDateTime.now()
在内部同时使用了 ZoneId.systemDefault()
和 Instant.now()
。
关于Java 8 ZoneOffset - 如何获取当前系统 UTC 偏移量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42468753/