-1

根据 Google,tzdata rpm 控制在系统级别应用的时区,而 tzdata-java 控制面向 Java 的应用程序(例如 openJDK、JRE)的时区。

我的困惑是..为什么java应用程序不使用系统级时区的系统级相关数据。为什么需要单独的 rpm tzdata-java 来更新时区?

4

1 回答 1

1

Java 可在多种操作系统上运行,但并非所有操作系统都包含 Linux rpm 包中的 tzdata。因此,他们似乎希望拥有一种适用于所有 Java 安装的解决方案,而不是一种适用于包含数据的操作系统和另一种适用于不包含数据的系统的解决方案。

我不知道是否所有操作系统都包含默认时区。似乎他们认为许多操作系统确实提供了默认时区,因此在需要采用 JVM 时区的情况下,从操作系统中获取 JVM 的默认时区是有意义的。除了如果需要,您还可以使用不同的默认时区启动 JVM,user.timezone从命令行设置系统属性。我可以补充一点,由于并非所有操作系统都具有相同的时区概念,因此有时在某些系统上需要进行一些转换。我已经看到至少一个 Stack Overflow 问题,其中 JVM 的默认时区与提问者对操作系统默认时区的期望不一致。

于 2021-03-22T19:14:54.537 回答