tomcat 8小时时间差。。

  在写后台取数据的时候碰到一个纠结的问题,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参数)-- " -Duser.timezone=Asia/Shanghai" 保存。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
如果在Java应用中,用户长时间未操作而页面长时间不进行刷新,可能会因为服务器资源的管理策略、会话超时设置或者网络连接不稳定等原因导致掉线。这通常涉及到以下几个方面: 1. **服务器端**:服务器可能会有默认的无活动超时时间,超过这个时间,如果没有新的请求,服务器可能关闭不活动的连接来释放资源。比如在Servlet容器如Tomcat中,默认的Socket保持存活时间为60秒。 2. **HTTP协议**:HTTP协议本身没有内置机制来处理长连接,客户端和服务器之间的TCP连接通常是短生命周期的。如果不进行交互,浏览器会主动断开连接(Keep-Alive允许复用连接,但这依赖于双方支持)。 3. **浏览器缓存**:如果浏览器设置了较长的HTTP头信息,可能导致连接保持更久,但如果用户长时间未操作,浏览器也可能自动断开连接。 4. **网络状况**:如果用户的网络连接不稳定,也可能造成频繁断开再建立连接的情况。 解决这个问题,你可以考虑: - 提升服务器端的无活动超时时间,但注意过长可能会增加服务器负载; - 对敏感操作设置心跳检查,定时发送请求更新会话状态; - 使用长连接技术,如WebSocket或SSE等; - 调整前端用户体验设计,例如添加提示让用户手动刷新或设置定时任务; - 对网络环境差的场景提供离线访问或者优化错误提示。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值