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

时间:2017-01-06 09:23:43

标签: java timezone dst

我非常简单的代码:

  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。 可疑的是转换量,在我的本地机器上显示它与测试机器相比经历了额外的转换。 有什么想法吗?

1 个答案:

答案 0 :(得分:2)

您可以使用不同的Java版本。其中一个支持DST,另一个不支持。在俄罗斯,不再有DST更改,也许一个Java版本已经老了,并且不知道它。