前后端分离项目中Spring Boot返回的时间与前端相差8个小时 ...

打印 上一主题 下一主题

主题 717|帖子 717|积分 2151

概述

今天在做一个前后端分离项目时,发现从后端获取的时间与从数据库获取的时间相差八个小时,最终排查后发现由于Springboot使用本地时区导致,修改SpringBoot时区后办理
情况



  • MySQL8
  • SpringBoot
原因排查

发现从后端获取的数据总是比前端快八个小时


  • ajax返回数据
  1. {
  2.   "uid": 1,
  3.   "username": "malong",
  4.   "password": "2",
  5.   "name": "mal",
  6.   "birthday": "2019-06-18T16:00:00.000+00:00",
  7.   "sex": "女",
  8.   "telephone": "010-1234567",
  9.   "email": "malong@163.com",
  10.   "status": "Y",
  11.   "code": "57fdfb86837c4888b12411b89eba00e1",
  12.   "isadmin": null,
  13.   "deptId": 3,
  14.   "deptName": null
  15. }
复制代码


  • 日志打印user对象
  1. 2024-06-05 15:18:15.717  WARN 6632 --- [nio-8080-exec-7] x.wrywebsite.controller.UserController   : User(uid=1, username=malong, password=2, name=mal, birthday=Wed Jun 19 00:00:00 CST 2019, sex=女, telephone=010-1234567, email=malong@163.com, status=Y, code=57fdfb86837c4888b12411b89eba00e1, isadmin=null, deptId=3, deptName=null)
复制代码
发现后端时区为CST,前端为UTC
办理方案

修改Spring Boot时区,在项目启动前增长代码
  1. @SpringBootApplication
  2. @MapperScan("xyz.wrywebsite.dao")
  3. public class UserServerApplication {
  4.     public static void main(String[] args) {
  5.         TimeZone.setDefault(TimeZone.getTimeZone("UTC"));
  6.         SpringApplication.run(UserServerApplication.class, args);
  7.     }
  8. }
复制代码
修改后,再次启动,前后端date数据同等,问题办理

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

西河刘卡车医

金牌会员
这个人很懒什么都没写!

标签云

快速回复 返回顶部 返回列表