new Date()获取的时间与系统时间相关8小时

        在运行Date now = new Date()时,获取出来的时间与系统的时间相关8小时。如系统时间为13:45:34,则取出来的为1:45:34。

        我首先查看了自己的系统时间,是正确的,为13:45:34;然后想到了时区,因为中国在东八区。运行测试代码System.out.println(System.getProperty("user.timezone"));得到的是GMT,表明时区的设置有问题。然后根据一位网友的建议,做了如下操作:

        在电脑里的时间设置里面, 随便选择一个时区, 修改后通过System.out.println(System.getProperty("user.timezone"));可以查看修改是否生效。生效后运行程序会发现显示时间和你调整时区后的时间一样。然后你在换回北京时区, 就是东八区, 在运行程序就没有问题了,这时运行测试代码System.out.println(System.getProperty("user.timezone"));得到的就不是GMT,而是正确的结果,如我得到的结果是Asia/Shanghai。

你可能感兴趣的:(Date,测试)