安装完jdk和jre后,部署应用服务器,运行程序,发现显示的时间和实际时间差8个小时。按时间查询最终结果不是自己想要的结果。
为了解决这个问题,可以通过修改程序来设置时区或者指定时间,或者配置jvm的运行参数来指定时区,这些方法都可以在网上轻易找到。但是对于已经编译好的程序或者小白来说,重新修改程序再编译或者设置jvm的运行参数还是太过麻烦。
今天就介绍一个简单快捷的方法,通过替换jre的时区文件来实现程序时间和系统时间的一致。
找到java安装目录下的jre\lib\zi目录。
可以看到很多文件和文件夹,其中有一个名字为GMT的文件是当前生效的时区文件,为了使应用时间和系统时间一致,就需要找到其他时区文件对该文件进行替换。
比如现在要用东八区的时间,那么打开zi文件夹下的Asia文件夹,可以看到里面有名字为Shanghai或者Hong_kong的两个文件。把这两个文件的任意一个拷贝到zi目录下,然后把zi文件夹下的GMT文件重命名为GMT_BAK,把Shanghai或者Hong_kong重命名为GMT。
重启服务后,重新打开应用,一切OK,就是自己想要的时间。这种方法虽然看着不怎么高大上,但是解决时差问题方便快捷,值得一试。