给定一个时区(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"