springboot 之 时区问题

背景

在有国际化业务的系统中,时间保存和计算涉及到不同时区问题,因此这里记录下处理方法

解决方法

服务器接收存储处理返回都按照 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);
    }
}
相关推荐
葫芦和十三6 小时前
图解 MongoDB 23|两地三中心:跨可用区部署怎么扛机房故障
后端·mongodb·agent
勇哥java实战分享8 小时前
PaddleOCR 太慢?我换成 RapidOCR 后,速度直接起飞
后端
苏三说技术12 小时前
LangChain4j 和 LangGraph4j,哪个更好?
后端
ServBay13 小时前
7 个AI开发中真正用得上的 MCP Server,配合Claude Code食用效果更佳
后端·claude·mcp
妙码生花14 小时前
从 PHP 到 AI + Golang,程序员自救转型手记(十五):优化细节、网络请求封装
前端·后端·ai编程
用户67570498850214 小时前
Go 语言里判断字符串为空,90% 的人都写错了!
后端·go
Flittly14 小时前
【AgentScope Java新手村系列】(16)从RAG到多路检索
java·spring boot·spring
用户67570498850214 小时前
Go 进阶必修:90% 的人都没用对的“表驱动法”
后端·go
小兔崽子去哪了14 小时前
Java 生成二维码解决方案
java·后端