web系统时区不一致导致时间显示异常的解决方案
先说一下场景,一般在国内,我们都用的东八区时间,部署系统的时候,如果操作系统的时区也初始化为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系统时区不一致导致时间显示异常的解决方案相关推荐
- RootCause深度分析:为什么DCache常会导致LCD显示异常(数据一致性问题)
DCache导致LCD显示异常RootCause深度分析 问题描述: L1/L2 Cache简介 问题分析: 问题解决: 如何编程: Invalide Clean HyperRAM: Cache cl ...
- CEPH RGW集群和bucket的zone group 不一致导致的404异常解决 及 使用radosgw-admin metadata 命令设置bucket metadata 的方法
CEPH RGW集群和bucket的zone group 不一致导致的404异常解决 及 使用radosgw-admin metadata 命令设置bucket metadata 的方法 参考文章: ...
- 防止用户调整微信浏览器字体大小导致的显示异常
防止用户调整微信浏览器字体大小导致的显示异常(加JS代码) // 下面这段代码,防止用户调整微信浏览器字体大小导致的显示异常 (function() {if (typeof WeixinJSBridg ...
- xp打开html页面不正常,解答xp系统2345浏览器打开网页显示异常的具体方法
有部分朋友反映xp系统2345浏览器打开网页显示异常的情况不知道应该怎么解决,然后就向我打探有没有什么办法可以处理xp系统2345浏览器打开网页显示异常的方法,针对这个问题小编就整理总结出xp系统23 ...
- 前端服务器OWA 访问显示异常最佳解决方案
EXCHANGE2003环境: 前端服务器:denver 后端服务器:sbs1 出现的问题: 当从一台XP客户端通过OWA进行访问时,如直接通过后端[url]http://sbs1/excha ...
- linux服务器时区不对导致时间不一致解决方案
--修改linux服务器时区 mv /etc/localtime /etc/localtime.bak ln -s /usr/share/zoneinfo/Asia/Shanghai /etc/loc ...
- CentOS 修改系统时区和更新时间
修改时区 新安装 centOS 系统后,可能会出现由于时区问题,导致时间与现有正常时间相差 8 个小时的情况.我们可以通过相应的命令来重新设置时区. [root@master ~]# timedate ...
- docker oxidized时区问题,时间显示不是北京时间问题的解决办法
问题描述:oxidized web界面时间显示,默认显示UTC时间,为北京时间-8个小时 问题原因:ruby语言的时间直接获取的UTC时间 出现版本:oxidized 0.28.0 问题解决: doc ...
- 关于linux系统笔记本电池的放电时间显示错误的问题
在笔记本上发现电池时间在拔下电源接头时,一段时间内剩余放电时间显示错误的问题,这个问题在很多linux发行版都有存在,但是好像一直没解决,在网上关于这个问题讨论的人也很少,故在此做下总结. linux ...
最新文章
- 直观讲解一下RPC调用和HTTP调用的区别
- MYSQL数据库——mysql的数据类型和运算符
- 《代码本色》作者Daniel Shiffman:艺术家也编程
- Java过滤特殊字符的正则表达式
- c++对那些类型的数据不能使用引用_基于js数据类型浅谈deepClone
- Extjs grid 设置行字体颜色
- AMQP 和 RabbitMQ 入门
- 计算机系统-电路设计01-非门电路
- leetcode python3 简单题155. Min Stack
- 第一周 从C走进C++ 002 命令行参数
- struts html:select 默认选中,Struts2自动选择下拉框的值
- 计算某个目录下所有文件的MD5值
- Python学习中的知识点小记录(廖雪峰)
- 轮询、长轮询、长连接、socket连接、WebSocket
- 浏阳市大瑶计算机学校,2021年湖南长沙浏阳市重点小学排名学校一览
- TopCoder 2019线下比赛
- Android中m、mm、mmm、mma、mmma的区别
- 尚硅谷的Netty介绍(一)
- 【练习】星巴克介绍页面
- Android查看手机位置,android-查找手机的位置