mysql遇到時區問題的坑(Java解決方案)

最近項目遇到一個坑,就是server和db之間存在時區問題,本人的db是utc時間,html

可使用代碼設置時區來解決,本人這裏使用joda三方包,joda蠻好用的,具體用法這裏不作詳細描述。mysql

先引入pomspring

<dependency>
  <groupId>joda-time</groupId>
  <artifactId>joda-time</artifactId>
  <version>2.10.1</version>
</dependency>

下面在使用的地方加上下面一句便可。sql

// 這裏使用UTC,還有其餘的配置參數,好比: Asia/Shanghai   Asia/Chongqin  等等
DateTime utcDT = new DateTime().withZone(DateTimeZone.UTC).toLocalDateTime().toDateTime(); ... ... ... UserDto dto = new UserDto(); dto.setCreated(utcDT.toDate()); userMapping.insertRecords(dto);

 

除了上面的方法外,還能夠在驅動器的鏈接URL上加參數,以下:app

spring.datasource.driver-class-name=com.mysql.jdbc.Driver
spring.datasource.url=jdbc:mysql://127.0.0.1:3306/xxx?useUnicode=true&characterEncoding=utf8
&allowMultiQueries=true&useLegacyDatetimeCode=false&serverTimezone=UTC
spring.datasource.username=root spring.datasource.password=111111
說明:useLegacyDatetimeCode=false 關鍵是這個參數,
引用:http://www.voidcn.com/article/p-eqvuhiio-bsb.html 這裏有詳細的介紹

附上mysql官網文檔:https://dev.mysql.com/doc/connector-j/5.1/en/connector-j-reference-configuration-properties.htmlurl

相關文章
相關標籤/搜索