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

标签 java time java-8 utc java-time

我想获取系统的当前 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/

相关文章:

java - 在java中读取文件直到找到一行

java - 最短路径算法 : Uniform distances from one point to adjacent points

java - 如何设置 AlarmManager 的特定日期、小时、分钟和秒

java - 将 java lambda 转换为 pre java 1.8 函数

java - 将 JDK 添加到 netbeans 8.1

java - 访问 Fragment 内的适配器

java - 在 Activity 重新启动之前,TextView 是空白的

java - Intellij error=2 没有那个文件或目录

time - 在 golang 中定义一种新的时间类型

mysql - 从年份和月份变量中获取月份的第一天和最后一天