我想获得系统的当前 ZoneOffset
我试图这样做,但我找不到办法
此外,我正在寻找解决方案,但我没有找到任何解决方案
是否有可能在Java中这样做?
编辑:
我的问题与this不同。我想知道当前的系统UTC,而不是如何在TimeZone偏移表示或TimeZone存储之间进行转换。
答案 0 :(得分:18)
您的请求包含两部分:
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()
。
答案 1 :(得分:14)
是的,有可能:
ZoneOffset.systemDefault().getRules().getOffset(Instant.now())
或者您可以使用LocalDateTime实例替换Instant实例:
ZoneOffset.systemDefault().getRules().getOffset(LocalDateTime.now())