我有一个Java应用程序,显示各种日期,所有日期都在本地时区。它在Windows 7上的测试中一直运行正常。现在它已经转移到生产到Windows 7机器,其中Clock显示正确的本地时间,但与java.util.Date,java.util.TimeZone等的所有交互告诉我Java认为它的当地时区是GMT。
甚至更奇怪的是,基于其他地方读取的一些信息,我比较了机器上的HKEY_LOCAL_MACHINE \ SYSTEM \ CurrentControlSet \ Control \ TimeZoneInformation键的注册表设置以及没有出现问题的机器他们是一样的吗?
可能导致这种情况发生的原因是什么?我从来没有见过这样的东西。是否有一些我不知道的Windows 7或Java设置?
答案 0 :(得分:0)
此计算机是否可能在Java控制面板或应用程序启动时的其他位置显式设置了user.timezone
参数? see here
您可以尝试的另一件事(根据用户在this article的评论中)是:
不确定这是否仍然适用,因为该文章是关于Windows XP的,但这肯定会在注册表中重新创建所有必要的时区密钥 - 以防其中一个未正确设置。
另外,请确保该计算机具有Java的更新版本。
除此之外,我不确定它是什么。