当前位置: 首页 > news >正文

解决前后端时区不一致问题

前后端时区不一致导致:

》数据不显示在前端

》页面显示时间有误

》一些对时间有要求的方法,无法正确执行,出现null值,加上我们对null值有判断/注解,程序就会报错中断,以为是业务逻辑问题,其实是前后端时区有差距。

-------------------------------------

情况:前后端,数据库都设置为+8:00 但是还是相差一天。

前端增加2025-4-9 页面显示为2025-4-8 ;后端拦截和数据库均显示2025-4-9。

解决方法:前后端改成 Asia/Shanghai ,数据库为+8:00

-----------------------------------

1. mysql 数据库设置全局时区为 +8:00

// 查询当前数据库时区
show variables like '%time_zone%';// 进入root账户修改全局时区,因为root默认为超级权限用户,千万不要把这个用户给删了
// 如果不小心删了,可以借助还没有断开root用户连接的第三方工具(batabase,navicat),在里面执行sql语句,给root所有的权限,再次成为超级权限用户
mysql -u root -p//设置全局时区,重启数据库依然有效set gloable time_zone="+8:00";//我用的Mysql8.0 只能设置为+8:00,其他的GMT UTC Asia/Shanghai 等等都执行不了//+8:00 等效于 Asia/Shanghai 在国内的程序,最好都设为 Asia/Shanghai,不容易报错

2. 程序所有用到时区的地方都设置为 Asia/Shanghai

1)req resp 请求的注解

    @JsonFormat(pattern = "yyyy-MM-dd",timezone = "Asia/Shanghai")

2)后端 所有配置数据库的文件

 connectionURL="jdbc:mysql://localhost:3306/train_batch?serverTimezone=Asia/Shanghai"
spring.datasource.url=jdbc:mysql://localhost:3306/train_business?serverTimezone=Asia/Shanghai
spring.jackson.time-zone=Asia/Shanghai

3) 前端的时区矫正也写在后端对应模块的application.properties文件里

# 前端时区矫正
spring.jackson.date-format=yyyy-MM-dd HH:mm:ss
spring.jackson.time-zone=Asia/Shanghai

4)连接数据库的软件配置


http://www.mrgr.cn/news/97767.html

相关文章:

  • Helm核心概念与常见操作介绍
  • VSCode 常用快捷键
  • 神经网络入门—自定义神经网络续集
  • CSRF漏洞技术解析与实战防御指南
  • 【WRF理论第十七期】单向/双向嵌套机制(含namelist.input详细介绍)
  • SAP ABAP 多线程处理/并行处理的四种方式
  • Quill富文本编辑器支持自定义字体(包括新旧两个版本,支持Windings 2字体)
  • 柑橘病虫害图像分类数据集OrangeFruitDaatset-8600
  • vue3中watch的使用示例
  • NO.84十六届蓝桥杯备战|动态规划-路径类DP|矩阵的最小路径和|迷雾森林|过河卒|方格取数(C++)
  • Stable Diffusion + Contronet,调参实现LPIPS最优(带生成效果+指标对比)——项目学习记录
  • 网络协议学习
  • macos下 ragflow二次开发环境搭建
  • ABAP小白开发操作手册+(十)验证和替代——下
  • js异步机制
  • OSPF基础入门篇②:OSPF邻居建立篇-网络设备的“社交礼仪“
  • 程序代码篇---时间复杂度空间复杂度
  • 如何在Dify中安装运行pandas、numpy库(离线、在线均支持,可提供远程指导)
  • OminiAdapt:学习跨任务不变性,实现稳健且环境-觉察的机器人操作
  • MCP协议介绍