1.new Date() 得到的时间?和系统相差 相差8个小时
2.eclipse控制台打印的时间与系统相差 相差8个小时
3.log4j日志的时间与与系统相差 相差8个小时
上述问题其实是同一个问题。
原因:java获得的时区跟系统的时区不一样
解决方法如下:
1.在代码前加上下面这句话就行了:TimeZone.setDefault(TimeZone.getTimeZone("Asia/Shanghai"))
2.在tomcat中修改catalina.bat文件的 set JAVA_OPTS在后面加上-Duser.timezone=GMT+08
3.修改注册表中的默认时区改成(GMT+08:00) 北京,重庆,香港特别行政区,乌鲁木齐
如果还不行看下:从正常的并且是相同系统的机器中导出HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\WindowsNT\CurrentVersion\Time Zones 项,然后导入到自己机器中 。