如何在Java中获得时区的UTC偏移量?



给定一个时区(America/New_York),我如何去获取UTC偏移量?

我试过使用java.util.TimeZone,但没有运气。如果解决方案是可行的,我也可以使用Joda Time。

由于夏令时等原因,特定时区的偏移量可以根据当前时间变化。UTC没有夏令时,但"America/New_York"将随着夏令时开关改变偏移量。因此,偏移量是当前时间和时区的函数。这里的答案给出了一些如何获得当前偏移量的示例:

Java时区偏移

注意:当前偏移量取决于

  • 原始z-offset
  • 当前时刻的夏令时。

这是一个很好的答案。

有用的代码片段:

  • TimeZone.getTimeZone("Europe/Kiev").getOffset(Instant.now().toEpochMilli());将给你以毫秒为单位的整数偏移
  • String.format("%tz", Instant.now().atZone(ZoneId.of("Europe/Kiev")));会给你一个标准化的字符串表示,比如"+0300"

相关内容

  • 没有找到相关文章

最新更新