美文网首页
spring datasource url时区设置

spring datasource url时区设置

作者: Anson_1f2a | 来源:发表于2021-01-31 15:05 被阅读0次

背景知识

GMT:Greenwich Mean Time 格林尼治标准时间。这是以英国格林尼治天文台观测结果得出的时间,这是英国格林尼治当地时间,这个地方的当地时间过去被当成世界标准的时间。
UT:Universal Time 世界时。根据原子钟计算出来的时间。
UTC:Coordinated Universal Time 协调世界时。因为地球自转越来越慢,每年都会比前一年多出零点几秒,每隔几年协调世界时组织都会给世界时+1秒,让基于原子钟的世界时和基于天文学(人类感知)的格林尼治标准时间相差不至于太大。并将得到的时间称为UTC,这是现在使用的世界标准时间。协调世界时不与任何地区位置相关,也不代表此刻某地的时间,所以在说明某地时间时要加上时区也就是说GMT并不等于UTC,而是等于UTC+0,只是格林尼治刚好在0时区上。
GMT = UTC+0

遇到问题

问题描述:插入或更新数据库使用CURRENT_TIMESTAMP,数据库里面的时间是正确的,但接口返回的时间不对。
框架:Spring framework
数据库:MySQL

// 最初YML文件
spring:
  datasource:
    driver-class-name: com.mysql.cj.jdbc.Driver
    url: jdbc:mysql://127.0.0.1:3306/mysystem
    username: root
    password: anson
    hikari:
      maximum-pool-size: 100
      minimum-idle: 3
      max-lifetime: 1800000
      idle-timeout: 180000
      connection-test-query: SELECT 1

使用以上配置的话,差14个小时,如:数据库时间2021-01-30 10:00:00,接口返回2021-01-31 00:00:00
于是修改配置文件中的url参数,加入时区后显示正常。

url: jdbc:mysql://127.0.0.1:3306/mysystem?serverTimezone=Asia/Shanghai&useUnicode=true&zeroDateTimeBehavior=convertToNull&autoReconnect=true&characterEncoding=utf-8

ps:一开始使用UTC,则差8小时,使用Asia/Shanghai就正常了。

相关文章

网友评论

      本文标题:spring datasource url时区设置

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