先说一下场景,一般在国内,我们都用的东八区时间,部署系统的时候,如果操作系统的时区也初始化为Asia/Shanghai,这样节点上所有的服务时区默认都会跟操作系统保持一致,用户访问系统页面时,展示的时间当然也是不会有问题的,但是有时候由于某些原因,操作系统的时区并没有初始化,使用了默认的时区,同时web系统没有做特殊配置,将会导致用户浏览器端看到的时间不一致的问题,常见的就是比真实时间慢8小时,下面提供两种解决方案:

不依赖数据库时区

必须设置web系统的时区为UTC时区,这样涉及到时间的操作都使用UTC时间,同时web系统与数据库交互的数据也是UTC,并且在sql语句中,如果时间字段需要使用函数,则必须使用utc_timestamp()函数,禁止使用now()函数,因为now()函数是根据数据库的时区来生成时间,这样web系统所有时间的查询和写入都是UTC,返回给前端也是时间戳,由前端根据用户浏览器的时区来进行时间转换展示。 java中设置web系统时区的方式如下:

TimeZone.setDefault(TimeZone.getTimeZone(DateTimeZone.UTC.getID()));

依赖数据库时区

web系统中传入数据的sql语句可以使用now()函数,但是必须在jdbc连接的url中添加两个参数:

useLegacyDatetimeCode=false   表示开启数据库时间与web系统应用的时间进行转换

serverTimezone=${db_timezone}      ${db_timezone}为数据库存储的时间的时区

这样配置之后,从web系统传入数据库的时间会自动根据数据库时区进行转换,保存到数据库时,时间就会跟数据库时区一致,同时从数据库查询的时间也会自动转换成web系统的时区时间。

web系统时区不一致导致时间显示异常的解决方案相关推荐

  1. RootCause深度分析:为什么DCache常会导致LCD显示异常(数据一致性问题)

    DCache导致LCD显示异常RootCause深度分析 问题描述: L1/L2 Cache简介 问题分析: 问题解决: 如何编程: Invalide Clean HyperRAM: Cache cl ...

  2. CEPH RGW集群和bucket的zone group 不一致导致的404异常解决 及 使用radosgw-admin metadata 命令设置bucket metadata 的方法

    CEPH RGW集群和bucket的zone group 不一致导致的404异常解决 及 使用radosgw-admin metadata 命令设置bucket metadata 的方法 参考文章: ...

  3. 防止用户调整微信浏览器字体大小导致的显示异常

    防止用户调整微信浏览器字体大小导致的显示异常(加JS代码) // 下面这段代码,防止用户调整微信浏览器字体大小导致的显示异常 (function() {if (typeof WeixinJSBridg ...

  4. xp打开html页面不正常,解答xp系统2345浏览器打开网页显示异常的具体方法

    有部分朋友反映xp系统2345浏览器打开网页显示异常的情况不知道应该怎么解决,然后就向我打探有没有什么办法可以处理xp系统2345浏览器打开网页显示异常的方法,针对这个问题小编就整理总结出xp系统23 ...

  5. 前端服务器OWA 访问显示异常最佳解决方案

    EXCHANGE2003环境: 前端服务器:denver     后端服务器:sbs1 出现的问题: 当从一台XP客户端通过OWA进行访问时,如直接通过后端[url]http://sbs1/excha ...

  6. linux服务器时区不对导致时间不一致解决方案

    --修改linux服务器时区 mv /etc/localtime /etc/localtime.bak ln -s /usr/share/zoneinfo/Asia/Shanghai /etc/loc ...

  7. CentOS 修改系统时区和更新时间

    修改时区 新安装 centOS 系统后,可能会出现由于时区问题,导致时间与现有正常时间相差 8 个小时的情况.我们可以通过相应的命令来重新设置时区. [root@master ~]# timedate ...

  8. docker oxidized时区问题,时间显示不是北京时间问题的解决办法

    问题描述:oxidized web界面时间显示,默认显示UTC时间,为北京时间-8个小时 问题原因:ruby语言的时间直接获取的UTC时间 出现版本:oxidized 0.28.0 问题解决: doc ...

  9. 关于linux系统笔记本电池的放电时间显示错误的问题

    在笔记本上发现电池时间在拔下电源接头时,一段时间内剩余放电时间显示错误的问题,这个问题在很多linux发行版都有存在,但是好像一直没解决,在网上关于这个问题讨论的人也很少,故在此做下总结. linux ...

最新文章

  1. 直观讲解一下RPC调用和HTTP调用的区别
  2. MYSQL数据库——mysql的数据类型和运算符
  3. 《代码本色》作者Daniel Shiffman:艺术家也编程
  4. Java过滤特殊字符的正则表达式
  5. c++对那些类型的数据不能使用引用_基于js数据类型浅谈deepClone
  6. Extjs grid 设置行字体颜色
  7. AMQP 和 RabbitMQ 入门
  8. 计算机系统-电路设计01-非门电路
  9. leetcode python3 简单题155. Min Stack
  10. 第一周 从C走进C++ 002 命令行参数
  11. struts html:select 默认选中,Struts2自动选择下拉框的值
  12. 计算某个目录下所有文件的MD5值
  13. Python学习中的知识点小记录(廖雪峰)
  14. 轮询、长轮询、长连接、socket连接、WebSocket
  15. 浏阳市大瑶计算机学校,2021年湖南长沙浏阳市重点小学排名学校一览
  16. TopCoder 2019线下比赛
  17. Android中m、mm、mmm、mma、mmma的区别
  18. 尚硅谷的Netty介绍(一)
  19. 【练习】星巴克介绍页面
  20. Android查看手机位置,android-查找手机的位置

热门文章

  1. 脉动风速谱matlab程序,1.脉动风速谱.PDF
  2. 需求管理手册-对需求描述的要求(8)
  3. 编写两个矩阵相乘的方法(Java)
  4. 计算机组成怎么看进位,计算机组成原理《进位控制实验》
  5. 不干胶标签材料之面材
  6. linux编译sqc文件,SQC 文件扩展名: 它是什么以及如何打开它?
  7. 卡夫卡与风暴:卡夫卡和风暴的明智比较
  8. js科学技术法,10的几次方
  9. vivado版本更换及IP升级
  10. 供应商管理的策略与方法(转载)