【java】jdk时间差问题

转:Java通过new Date() 得到的时间与系统时间差N个小时的解决办法

本篇文章来源于 Linux公社网站(www.linuxidc.com)  原文链接:http://www.linuxidc.com/Linux/2011-12/48603.htm

般情况下不会出现如题所示的问题,既然出现了我们就要想办法解决之。以我的机器为例,我的当前系统时间是北京时间2011-08-31T08:00:00,但是newDate()得到的却是:2011-08-31T00:00:00。表示java得到的时间比当前系统时间提前了8个小时,那么我们就要想办法把java得到的时间向后推迟8个小时。解决的办法是:

1、找到你用的jre文件夹,以本机为例:C:\Program Files\Java\jdk1.5.0\jre

2、在上述文件夹下有个zi文件夹,我们的工作都在这里。

3、zi文件夹下有一个Etc文件夹,我们要做的工作就是从这个文件夹下找到对应的GMT文件替换zi下GMT文件。

4、选择哪个文件呢?如果java获取的时间+N=当前系统时间,就选择GMT-N文件,重命名为GMT,覆盖掉zi下的GMT文件,如果java获取的时间-N=当前系统时间,就选择GMT+N文件,重命名为GMT,覆盖掉zi下的GMT文件。

5、再运行一下你的程序看时间是不是正确了,如果还是不正确,请确认你的jre目录是否选得正确。

本篇文章来源于 Linux公社网站(www.linuxidc.com)  原文链接:http://www.linuxidc.com/Linux/2011-12/48603.htm

======================================================

64 位JDK出现八小时时差解决方法


发布的项目使用64位JDK,Java获取的时间总比正常的时候慢8小时,但服务器的时间及时区都是正确的,解决方法:
设置JVM的默认时区为东八区(北京时间)

在下面四个目录:

Java\jre6\lib\zi\Etc
Java\jre6\lib\zi
Java\jdk1.6.0_18\jre\lib\zi\Etc
Java\jdk1.6.0_18\jre\lib\zi 
引用下找到GMT文件备份一下,然后复制一份GMT-8并重命名为GMT
,复制完毕,重新运行一下java程序问题即可解决!
posted @ 2012-10-26 10:11  祺祺怪怪的  阅读(4694)  评论(0编辑  收藏  举报