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


一般情况下不会出现如题所示的问题,既然出现了我们就要想办法解决之。以我的机器为例,我的当前系统时间是北京时间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目录是否选得正确。

相关内容