您的位置:首页 > 运维架构 > Tomcat

tomcat 8小时时间差。。

2012-05-25 10:32 155 查看
  在写后台取数据的时候碰到一个纠结的问题,endTime = new Date();取的时间本来是当前时间,可当前时间2011-07-04 17:12:33却成了2011-07-04 09:12:33,就是说时间慢了8小时,找了几种方法,最后终于给解决了,开心:)

   1.Calendar calendar = Calendar.getInstance(TimeZone.getTimeZone("GMT+8"));

Date date = calendar.getTime();

2.tomcat启动脚本catalina.bat 文件中配置jvm参数,即在java项的Java Options中添加一行:set JAVA_OPTS=%JAVA_OPTS%  -Duser.timezone=GMT+08

或者在tomcat6w.exe中配置jvm参数 -Duser.timezone=GMT+08

在D:\apache-tomcat-6.0.26\bin中



如果还不行:tomcat读取的可能是硬件时间(BIOS时间),而这两台机器很有可能一台设置了使用UTC时间一台设置了不使用UTC时间。

3.DateFormat dateFormatterChina = DateFormat.getDateTimeInstance(DateFormat.MEDIUM,DateFormat.MEDIUM);//格式化输出

  TimeZone timeZoneChina = TimeZone.getTimeZone("Asia/Shanghai");//获取时区 这句加上,很关键。

  dateFormatterChina.setTimeZone(timeZoneChina);//设置系统时区

  Date curDate = new Date();//获取系统时间

 

以为是Tomcat容器的时间区的问题,后来网上找到个:

eclipse里面的系统时间,SVN或者其他纪录修改文件后的时间全部慢了8小时,而且调用时间类调用当前时间也少8小时。

这个问题主要有JRE的时区所引起的,在eclipse安装目录下找到eclipse.ini的启动文件,打开输入启动参数

   -vmargs

   -Duser.timezone=Asia/Shanghai(前面的“-”别忘了!)



  eclipse 中 install JRE的 Default VM arguments 设置为:

      -Duser.timezone=Asia/Shanghai  试一试。

 

操作步骤:eclipse中window(窗口)--Preferences(首选项)--java--Installed JREs--edit按钮--Default VM Arguments(缺省的vm参数)-- " [b]-Duser.timezone=Asia/Shanghai" 保存。[/b]
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息