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

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

最佳答案

您可能会使用不同的 Java 版本。其中一款支持夏令时,另一款则不支持。在俄罗斯,夏令时不再发生变化,也许某个 Java 版本已经过时并且不知道这一点。

关于Java TimeZone 实例在不同环境中运行时显示不同的偏移量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41502536/

相关文章:

java - 如何在java 1.8上运行ant apt任务

java - 在通过通知开始另一项 Activity 之前完成一项 Activity

php - 使用 DateTime/DateTimeZone 在 PHP 中调整时区

linux - Bash - 给定日期的小时数

javascript - 查找给定日期和时间是否在 DST 的空段中

java - 在 Java 和 C++ 之间同步日期

java - 在 Java 或 Scala 中解析扁平的、大量属性的 xml 的最快方法

java - 如果我们没有为对象创建引用变量,如何关闭扫描器类,那么如何避免资源泄漏警告消息

java - 为什么用 Jackson 的 @JsonFormat 注释的 java.sql.Timestamp 字段中的小时错误?

python - SQLAlchemy DateTime 时区