java.util.date()不是当前时间 我的抄贴生活又开始了,哈哈。主要是在学习过程中,发现解决一些问题,然后,想记录下来。
------------------------------------------------------------------------------------------
(1)第一种方法:
在“首选项- >Tomcat - >JVM Settings ”项,设定 JRE 的版本为“ jre1.5.0_06”,并且添加如下几个JVM Parameters :
-Xms128m
-Xmx512m
-Dfile.encoding=UTF8
-Duser.timezone=GMT+08
或者在catalina.bat (catalina.sh)中加入下面这句:
set JAVA_OPTS=%JAVA_OPTS% -Xms128m -Xmx512m -Dfile.encoding=GBK -Duser.timezone=GMT+08
------------------------------------------------------------------------------------------
(2)另一种方法是:
windows Xp pro service pack2 下Tomcat启动时间为GMT,比北京时间少8小时问题处理
机器系统为windows Xp professional service pack2
JDK版本为1.4.2_09
Tomcat版本为5.0.28
问题:用控制台启动tomcat,发现显示时间比北京时间少8小时,在通过WEB SERVICE接口与DELPHI通信中,因为时间少8小时导致通信出错.
分析:开始以为是TOMCAT设置时区未设置,不过TOMCAT好象不设置时区咯
第二步JDK上找原因,不过JDK是用native调用的JVM里的配置咯;
第三步JVM里的设置,java -Duser.timezone=Asia/Shanghai不起作用咯,继续找.*.*;
第四步猜想JVM应该是取的windows的时区设置,网上搜搜还真找到几个时区设置出错的情况(非JAVA咯);
第五步找了一台能正常设置时区windows注册表 [HKEY_LOCAL_MACHINE/SOFTWARE/Microsoft/Windows NT/CurrentVersion/Time Zones],备份之,覆盖之.;
测试.通过.HOHO~~~~;
据偶理解(好象本来就是这样呼),由于Windows时区设置出错,导致JVM取不到系统设置的时区,JDK在读取时区的时候在取不到的情况下缺省的GMT,从而使Tomcat上显示的时候比北京时间少8小时;
然而,我是通过第一种方法解决的,但是,个人还是认为第二种方法的观点是正确的,而第一种方法只不过是在tomcat里打了个补丁。要是,按第二种方法修改了注册表,估计,也不用设置tomcat了。