美文网首页
【spring boot】数据库存储的时间 和 接口返回给前

【spring boot】数据库存储的时间 和 接口返回给前

作者: wyn_做自己 | 来源:发表于2021-04-09 17:39 被阅读0次

    mysql5.7版本,当数据库时间类型字段设置为 timeStamp 或者 datetime 均有可能出现这个问题。

    一、解决方法:

    1、设置spring配置文件:

    spring.datasource.url=jdbc:mysql://10.1.1.1111:3306/database?characterEncoding=utf-8&serverTimezone=GMT%2B8

    数据库配置后面加上&serverTimezone=GMT%2B8

    2、spring.jackson.date-format=yyyy-MM-dd HH:mm:ss

         spring.jackson.time-zone=GMT+8

    第一步为设置数据库时间为东八区(北京)时间,保证debug时候从数据库查出时间一致。第二步为返回给前端的时间格式和时区设定,保证前端页面显示时间和数据库一致。

    二、问:为什么要增加  spring.jackson.time-zone  这个配置呢?

    原因:

    spring-boot中对于@RestController或者@Controller+@ResponseBody注解的接口方法的返回值默认是Json格式,

    所以当对于date类型的数据,在返回浏览器端是会被spring-boot默认的Jackson框架转换,而Jackson框架默认的时区GMT(相对于中国是少了8小时)。

    三、另附上如何从mysql配置上修改为北京时区.

    在目录C:\ProgramData\MySQL\MySQL Server 5.7下找到my.ini文件

    在[mysqld]下添加

    default-time-zone=timezone

    default-time-zone = '+8:00'

    相关文章

      网友评论

          本文标题:【spring boot】数据库存储的时间 和 接口返回给前

          本文链接:https://www.haomeiwen.com/subject/zncwkltx.html