今天调试系统发现从java输出的时间和系统时间不同。总是差8个小时。代码如下:
SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
System.out.println(format.format(new Date()));
感觉可能是时区不对,确实了下操作系统的时区设置的也正确。重启电脑看了下BIOS的时间也是对的。无奈上网查找。
终于找到原来是注册表时区设置不正确。
看这里:http://huiy.javaeye.com/blog/200512
注册表对应项:HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Time Zones
解决之道:
1.备份Time Zones这一项
2.从正常的并且是相同系统的机器中导出该项,然后倒入到自己机器中
下载:注册表信息