MySQL保存时间相差8小时,和返回json时间变为毫秒数

39 篇文章 0 订阅
9 篇文章 0 订阅

时间相差8小时

查询数据库时区配置:

show variables like '%time_zone%';

如果 system_time_zone 为 CST 表示此时数据库中设置的时区非东八区。

命令修改时区:

set global time_zone = '+08:00';
set time_zone = '+08:00';

直接修改数据配置文件:

在配置文件 my.conf 或 my.ini中添加  default-time-zone = '+08:00'。重启数据库

或者修改项目数据库连接url:url后面拼上: &serverTimezone=GMT%2B8

spring.datasource.url=jdbc:mysql://localhost:3306/lyf?serverTimezone=GMT%2B8&useUnicode=true&characterEncoding=utf-8&useSSL=true

这样存储到数据的数据就会以东八区的时间存储

北京时间=GMT时间+8小时。GMT:格林尼标准时间

GMT时间就是英国格林威治时间,也就是世界标准时间,是本初子午线上的地方时,是0时区的区时,与我国的标准时间北京时间(东八区)相差8小时,即晚8小时。

UTC,即协调世界时。UTC是以原子时秒长为基础,在时刻上尽量接近于GMT的一种时间计量系统。为确保UTC与GMT相差不会超过0.9秒,在有需要的情况下会在UTC内加上正或负闰秒。UTC现在作为世界标准时间使用。所以,UTC与GMT基本上等同,误差不超过0.9秒。

在数据库连接url使用serverTimezone的情况:

serverTimezone=GMT  结果不正常

serverTimezone=GMT%2B8   结果正常

 

返回json时间变为毫秒数

在application.properties中配置

spring.jackson.date-format=yyyy-MM-dd HH:mm:ss
spring.jackson.time-zone=GMT+8

在返回的实体类对象get时间的方法上加上:

    @JsonFormat(pattern="yyyy-MM-dd HH:mm:ss",timezone = "GMT+8")
    public Timestamp getCreateDate() {
        return createDate;
    }

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值