SpringBoot 统一时区的方案
系统采用多时区设计的时候,往往我们需要统一时区,需要统一的地方如下:
- 服务器(Tomcat服务)
- 数据库(JPA + Hibernate)
- 前端数据(前端采用Vuejs)
思路为:
将数据库和服务器的时间都采用标准时区UTC存储处理。前端拿到标准时区的数据,统一根据用户所在时区进行转换。这样保证了后端数据时区的一致性,前端根据实际情况进行渲染。
保证服务器时区为UTC
服务启动的时候,将当前时区设置为UTC,代码如下:
@SpringBootApplicationpublic class Application {@PostConstructvoid started() {TimeZone.setDefault(TimeZone.getTimeZone("UTC"));
//TimeZone.setDefault(TimeZone.getTimeZone("Asia/Shanghai"));
//TimeZone.setDefault(TimeZone.getTimeZone("GMT+8"));
} public static void main(String[] args) { SpringApplication.run(Application.class, args); } }
这样就保证了Java程序的时区为UTC。
保证数据库时区为UTC
Hibernate支持设置时区,在Springboot中增加配置如下:
spring.jpa.properties.hibernate.jdbc.time_zone = UTC
如果是MySQL数据库,连接池链接后面增加配置如下:
?serverTimezone=TimeZone&useLegacyDatetimeCode=false
如:
spring.datasource.url=jdbc:mysql://localhost:3306/db?useUnicode=true&characterEncoding=utf-8&useLegacyDatetimeCode=false&serverTimezone=UTC
其中useLegacyDatetimeCode
参数默认是true
,我们需要手动设置为false
,否则无效。
作者:Devid
链接:https://www.jianshu.com/p/504c17b35e17
來源:简书
转载于:https://www.cnblogs.com/chancy/p/9995562.html
SpringBoot 统一时区的方案相关推荐
- data spring 指定时区_SpringBoot 统一时区的方案
系统采用多时区设计的时候,往往我们需要统一时区,需要统一的地方如下: 服务器(Tomcat服务) 数据库(JPA + Hibernate) 前端数据(前端采用Vuejs) 思路为: 将数据库和服务器的 ...
- Spring Cloud Alibaba 统一门户:基于网关的统一用户认证方案
本讲咱们涉及以下三方面内容: 传统的用户认证方案: JWT 与 JJWT: 基于网关的统一用户认证. 传统的用户认证方案 我们直奔主题,什么是用户认证呢?对于大多数与用户相关的操作,软件系统首先要确认 ...
- springboot统一异常处理类及注解参数为数组的写法
springboot统一异常处理类及注解参数为数组的写法 参考文章: (1)springboot统一异常处理类及注解参数为数组的写法 (2)https://www.cnblogs.com/zhucww ...
- springboot mysql时区设置_java/springboot/mysql时区问题解决方案
解决步骤: 先理清楚逻辑 数据从mysql查出-->进入docker(没容器化跳过)-->进入相应的应用程序(比如java或者框架springboot之类的)-->程序处理完输出返回 ...
- springboot统一异常处理及返回数据的处理
springboot统一异常处理及返回数据的处理 参考文章: (1)springboot统一异常处理及返回数据的处理 (2)https://www.cnblogs.com/renshengruozhi ...
- SpringBoot统一返回处理出现cannot be cast to java.lang.String异常
SpringBoot统一返回处理出现cannot be cast to java.lang.String异常 一 问题出现背景: 二 解决方案 三 异常原因分析 原因: 源码详细分析: 正常返回: 返 ...
- 统一门户:基于网关的统一用户认证方案
1.传统的用户认证方案: 2.JWT与JJWT: 3.基于网关的统一用户认证: * 服务器自主验签方案 * API网关统一验签方案
- 让“无处不在的工作空间”成为可能:Ivanti统一IT管理方案布局次世代
新冠肺炎疫情的突袭,打乱了人们的生活和工作方式,尽管在严格控制下,中国地区已经进入全面复工复产阶段,但不少企业仍然选择继续实行远程办公模式,以及应对未知的明天.全球蔓延的疫情让企业意识到在这个瞬息万变 ...
- springboot 统一设置时区
控制springboot服务的时区为东八区 @SpringBootApplication public class Application {public static void main(Strin ...
最新文章
- dw可以编辑java吗_为什么很多人说 Java 不适合编写桌面应用?
- 从 idea打包工程到dos下命令运行
- 夺命雷公狗---linux NO:17 linux系统查找
- 算法优化:最大字段和,双指针遍历(n^2),分治法(nlogn),动态规划(n)
- 微型计算机技术第三版第三章答案,第3章微机组装技术作业(答案)
- 好久不来这里写东西了.
- Unity3D命令行Build
- Vim编辑器运用的五个技巧
- linux mysql 5.7 配置_Linux环境下详细讲解部署MySQL5.7版本
- matlab绘制两个函数,一系列复杂表达式迭代。怎么能画出某两个变量的函数曲线...
- RS485协议详解RS485与RS232优缺点比较
- EnableViewState属性
- MySQL里有2000w数据,redis中只存20w的数据,如何保证redis中的数据都是热点数据?
- 探索性测试方法讲解之一
- IO字节流读取文本中文乱码
- 如何将自己的录音形成二维码,用微信扫一下就能听?
- Github精选:本周10大热门项目
- struts中的javascript - seinbar的专栏
- 三、三个路由器间的互联
- 使用memccpy函数替代不安全的str[n]cpy、str[n]cat等