Java 时区实例在不同环境中运行时显示不同的偏移量



我非常简单的代码:

  public static void main(String[] args)
  {
    TimeZone tz = TimeZone.getTimeZone("Europe/Moscow");
    System.out.println(tz);
  }

当我在我的机器上本地运行它时,我得到:

sun.util.calendar.ZoneInfo[id="Europe/Moscow",offset=10800000,dstSavings=0,useDaylight=false,transitions=79,lastRule=null]

当部署在 unix 测试机器上时,我得到:

sun.util.calendar.ZoneInfo[id="Europe/Moscow",offset=14400000,dstSavings=0,useDaylight=false,transitions=78,lastRule=null]

如此不同的偏移量,似乎前者正在使用夏令时,而后者没有,但useDaylight字段都设置为 false。可疑的是转换的数量,在我的本地计算机上显示,与测试计算机相比,它经历了额外的转换。知道吗?

您可以使用不同的 Java 构建。其中一个支持DST,另一个不支持。在俄罗斯,DST不再改变,也许一个Java版本很旧并且不知道它。

相关内容

  • 没有找到相关文章

最新更新