【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
,复制完毕,重新运行一下java程序问题即可解决!