Java new Date() 获取错误的当前时间



当我这样做时:

new Date();

年,日和其他事情都可以,但小时和分钟是错误的。我在计算机上使用 64 位 Windows 7,并且:

Windows time is OK,
Bios Time is OK,
Windows Time Zone is OK,
Windows Time Zone at Regedit is OK

但是,当我在 Java 检查日期对象时(我使用 Java 1.6),区域信息的 id 是美国/加拉加斯,应该是欧洲/伊斯坦布尔

可能有什么问题,有什么想法吗?

PS:我不想将时区作为VM参数传递,我不想使用日历对象,因为我有一些使用Date对象而不是任何东西的库,我只是想了解问题

我认为这个博客可以帮助你。

引用博客文章来解决问题:

从 Windows XP 控制面板打开日期/时间对话框并应用以下更改之一后,Java API 开始正常工作:

  • 手动更改日期/时间,然后更改回原始正确时间。
  • 更改时区,然后返回原始时区。
  • 从时间服务器请求自动时间更新。

对于记录和来自同一博客:

一些进一步的调查显示:

  • 人们抱怨自JRE 1.3以来Sun Java虚拟机上的时区问题错误。 在过去十年中,针对Sun Java虚拟机提交了几个关于错误默认时区的错误报告。
  • 几乎所有的报告都被孙以不可复制为由拒绝。

您可以使用日历:

Calendar.getInstance(TimeZone.getTimeZone("GMT"), locale);

日期"取决于区域设置"。您也可以设置区域设置:

Locale.setDefault(...);

相关内容

  • 没有找到相关文章

最新更新