系统采用多时区设计的时候,往往我们需要统一时区,需要统一的地方如下:
服务器(Tomcat服务) 数据库(JPA + Hibernate) 前端数据(前端采用Vuejs)思路为:
将数据库和服务器的时间都采用标准时区UTC存储处理。前端拿到标准时区的数据,统一根据用户所在时区进行转换。这样保证了后端数据时区的一致性,前端根据实际情况进行渲染。
服务启动的时候,将当前时区设置为UTC,代码如下:
1
2
3
4
5
6
7
8
@SpringBootApplication
public class Application {
@PostConstruct
void started() {
TimeZone.setDefault(TimeZone.getTimeZone("UTC"));
} public static void main(String[] args) { SpringApplication.run(Application.class, args); } }
这样就保证了Java程序的时区为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
來源:简书
相关知识
基于springboot玉米病虫害远程咨询系统的设计与实现
基于springboot植物健康系统
java计算机毕业设计基于SpringBoot的疫苗接种管理系统(开题+程序+论文)
springboot毕设项目网上鲜花销售系统6r845(java+VUE+Mybatis+Maven+Mysql)
基于SpringBoot的网上花卉鲜花销售购物系统+Vue[毕业设计]
【中粮保利天府时区】回顾2023年优质楼盘,哪些楼盘上榜?是否值得入手?
SpringBoot Profiles实现多环境下配置切换
springboot“花开富贵”花园管理系统
基于springboot实现的对人社区交流平台(计算机毕设交流案例)
SpringBoot汽车租赁管理系统1gn16 程序+源码+数据库+调试部署+开发环境 文末可获取,
网址: SpringBoot 统一时区的方案 https://m.huajiangbk.com/newsview535384.html
上一篇: 记录ASP.NET Web AP |
下一篇: 标准引领 助力农业产业高质量发展 |