3

我有一个显示各种日期的 Java 应用程序,所有日期都在本地时区。它在 Windows 7 上的测试中始终正常工作。现在它已移至 Windows 7 机器的生产环境中,其中 Clock 显示正确的本地时间,但所有与 java.util.Date、java.util.TimeZone 等的交互.告诉我Java认为它的本地时区是GMT。

更奇怪的是,根据在别处阅读的一些信息,我比较了 HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\TimeZoneInformation 键的注册表设置,一台机器出现了问题,一台机器没有出现问题,发现它们是完全相同的?

什么可能导致这种情况发生?我从来没有见过这样的事情。是否有一些我不知道的 Windows 7 或 Java 设置?

4

1 回答 1

0

这台计算机是否可能user.timezone在应用程序启动时在 Java 控制面板或其他地方明确设置了参数? 看这里

您可以尝试的另一件事(根据本文评论中的用户)是:

  • 停止您的应用程序和任何其他 Java 应用程序。
  • 将 Windows 中的时区更改为其他时区(单击应用)。
  • 将其更改回正确的时区。
  • 重新启动您的应用程序。

不确定这是否仍然适用,因为那篇文章是关于 Windows XP 的,但这肯定会在注册表中重新创建所有必要的时区键 - 以防其中一个设置不正确。

此外,请确保该机器具有 Java 的更新版本。

除此之外,我不确定它可能是什么。

于 2013-05-17T14:49:20.527 回答