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

时间:2015-10-08 22:48:42

标签: java timezone jodatime timezone-offset

给定时区(America/New_York),如何获得UTC偏移量?

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

2 个答案:

答案 0 :(得分:8)

由于夏令时等原因,特定时区的偏移量可能因当前时间而异.UTC不会节省夏令时,但是" America / New_York"将使用夏令时开关改变偏移。因此,偏移量是 当前时间和时区的函数。这里的答案给出了一些如何获得当前偏移的例子:

Java TimeZone offset

答案 1 :(得分:0)

注意:当前偏移量取决于

  • 原始tz偏移
  • 当前时刻的日节约时间(DST)。

这在附近的答案中有很好的描述。

有用的摘要:

  • TimeZone.getTimeZone("Europe/Kiev").getOffset(Instant.now().toEpochMilli()); 将为您提供以毫秒为单位的整数偏移量
  • String.format("%tz", Instant.now().atZone(ZoneId.of("Europe/Kiev"))); 将为您提供标准化的字符串表示形式,例如“ +0300”