背景
在有国际化业务的系统中,时间保存和计算涉及到不同时区问题,因此这里记录下处理方法
解决方法
服务器接收,存储,处理,返回都按照 UTC来处理,具体时间由前端或者客户端处理之后显示。如果涉及到具体客户时间处理,需要获取客户所在时区之后处理。
设置方法
MySQL8.0设置0时区:
xml
[mysqld]
default-time-zone = '+00:00' # 设置为UTC时区
数据库连接池设置0时区:
yaml
jdbc:mysql://localhost:3306/your_database?serverTimezone=UTC
springboot中设置0时区:
java
@SpringBootApplication
public class Application {
public static void main(String[] args) {
// 设置JVM默认时区为UTC
TimeZone.setDefault(TimeZone.getTimeZone("UTC"));
SpringApplication.run(Application.class, args);
}
}