日期:2014-05-20  浏览次数:20692 次

WIN7和JDK1.5环境下获取系统时间错误
无论是new Date()还是Calendar.getInstance()获取的都是格林威治时间,而且user.timezone也是GMT,更郁闷的是,同样配置的其他同事却没有这个问题。
网上有些人说改过系统时间或时区后这个问题就能解决,但是我改了,问题依旧。
不知道各位大虾遇到过这个问题没有,是怎么解决的?

------解决方案--------------------
试试Calendar.getInstance(Locale.CHINA)
------解决方案--------------------
本人win7 64,没任何问题
------解决方案--------------------
是你时区的问题吧
------解决方案--------------------
找到Java目录下的

依次: \jre\lib\zi\Etc

\jre\lib\zi

\jdk1.6.0_18\jre\lib\zi\Etc

\jdk1.6.0_18\jre\lib\zi

下找到GMT文件,删除之(可以备份一下,以防万一),然后复制一份GMT-8并重命名为GMT替换原来的GMT。这样,就达到了掩人耳目的目的。

GMT-8在Etc目录下

网上找到的方法,不知道可行不
------解决方案--------------------
还有个办法就是在eclipse的run as的参数设置,VM参数中添加 -Duser.timezone=Asia/Shanghai
然后运行方法试下,应该就设好了
------解决方案--------------------
另外,如果是 jdk 1.5 的话,那用 java -version 看一下 java 的版本号,根据 Sun 提供的资料,对应于 Windows 系统,JDK 1.5 最小的版本号:

Windows 7, Windows 2008 R2, Windows Vista SP2, Windows 2008 SP2 需要 1.5.0_21 及以后版本
Windows 2008 需要 1.5.0_19 及以后版本
Windows Vista 需要 1.5.0_14 及以后版本

JDK 1.6 系统支持最小的版本号

Windows 7 需要 1.6.0_14 及以后版本
Windows Server 2008 R2 需要 1.6.0_16 及以后版本

你检查一下 JDK 的版本,JDK 5 的输出结果必须是大于等于 1.5.0_21 的。