今天终于忍不住要解决myeclipse控制台中日志显示比实际晚8小时的问题,开始以为myeclipse编辑器时间问题,后来想想不对,myeclipse控制台打印的是tomcat的日志,随后以为是log4g日志显示问题,上网搜索还是没结果,意外发现是tomcat日志时间选择时区问题,试了下在preference中增加jvm的参数-Duser.timezone=GMT+08,重启tomcat后问题解决。
问题来源
项目中有和当前时间比较的地方,发现不对后,经过跟踪分析发现是new Date()的时间要晚八个小时,估计Tomcat采用的是伦敦时间吧.
在网上收集了资料,整理大致有下面三种解决方案.
第一种:
是由于你的系统注册表里的时区信息丢失了,将时区信息导进注册表即可.
解决办法(windows系统):
到别人的机器上运行regedit
将[HKEY_LOCAL_MACHINESOFTWAREMicrosoftWindowsNTCurrentVersionTime Zones 这个注册表分支导出为一个文件,(如time.reg)
再将它合并到你的注册表里就行了(直接双击time.reg文件)
第二种:
打开tomcat服务管理器的java页
在Java Options里面输入需要设置的参数,如设置permsize的内存
-XX:PermSize=64M
-XX:MaxPermSize=192m
-XX:ReservedCodeCacheSize=48m
-Duser.timezone=GMT+08
注:每一行后面都不能有空格。
第三种:
方法二.修改{TOMCAT_HOME}/bin/catalina.bat文件
在最后几句以%_EXECJAVA%开头的语句后面加上“ -Duser.timezone=GMT+08 ”
如:
rem Execute Java with the applicable properties
if not "%JPDA%" == "" goto doJpda
if not "%SECURITY_POLICY_FILE%" == "" goto doSecurity
%_EXECJAVA% %JAVA_OPTS% %CATALINA_OPTS% %DEBUG_OPTS%-Djava.endorsed.dirs="%JAVA_ENDORSED_DIRS%" -classpath"%CLASSPATH%" -Dcatalina.base="%CATALINA_BASE%"-Dcatalina.home="%CATALINA_HOME%" -Duser.timezone=GMT+08-Djava.io.tmpdir="%CATALINA_TMPDIR%" %MAINCLASS% %CMD_LINE_ARGS% %ACTION%
goto end
:doSecurity
%_EXECJAVA% %JAVA_OPTS% %CATALINA_OPTS% %DEBUG_OPTS%-Djava.endorsed.dirs="%JAVA_ENDORSED_DIRS%" -classpath"%CLASSPATH%" -Djava.security.manager-Djava.security.policy=="%SECURITY_POLICY_FILE%"-Dcatalina.base="%CATALINA_BASE%"-Dcatalina.home="%CATALINA_HOME%" -Duser.timezone=GMT+08-Djava.io.tmpdir="%CATALINA_TMPDIR%" %MAINCLASS% %CMD_LINE_ARGS%%ACTION%
goto end
:doJpda
if not "%SECURITY_POLICY_FILE%" == "" goto doSecurityJpda
%_EXECJAVA% %JAVA_OPTS% %CATALINA_OPTS% -Xdebug -Xrunjdwp:transport=%JPDA_TRANSPORT%,address=%JPDA_ADDRESS%,server=y,suspend=n%DEBUG_OPTS% -Djava.endorsed.dirs="%JAVA_ENDORSED_DIRS%" -classpath"%CLASSPATH%" -Dcatalina.base="%CATALINA_BASE%"-Dcatalina.home="%CATALINA_HOME%" -Duser.timezone=GMT+08 -Djava.io.tmpdir="%CATALINA_TMPDIR%"%MAINCLASS% %CMD_LINE_ARGS% %ACTION%
goto end
:doSecurityJpda
%_EXECJAVA% %JAVA_OPTS% %CATALINA_OPTS%-Xrunjdwp:transport=%JPDA_TRANSPORT%,address=%JPDA_ADDRESS%,server=y,suspend=n%DEBUG_OPTS% -Djava.endorsed.dirs="%JAVA_ENDORSED_DIRS%" -classpath"%CLASSPATH%" -Djava.security.manager-Djava.security.policy=="%SECURITY_POLICY_FILE%"-Dcatalina.base="%CATALINA_BASE%"-Dcatalina.home="%CATALINA_HOME%" -Duser.timezone=GMT+08-Djava.io.tmpdir="%CATALINA_TMPDIR%" %MAINCLASS% %CMD_LINE_ARGS%%ACTION%