明輝手游網(wǎng)中心:是一個(gè)免費(fèi)提供流行視頻軟件教程、在線學(xué)習(xí)分享的學(xué)習(xí)平臺(tái)!

詳細(xì)說明mysql中url時(shí)區(qū)的陷阱該怎么規(guī)避

[摘要]最近在使用mysql的6.0.x以上的jar的時(shí)候,需要在代碼url的鏈接里面指定serverTimezone。就會(huì)出現(xiàn)異常,這個(gè)問題問題,是關(guān)于mysql中url時(shí)區(qū)的,發(fā)現(xiàn)這個(gè)陷阱如果大家不注意...
最近在使用mysql的6.0.x以上的jar的時(shí)候,需要在代碼url的鏈接里面指定serverTimezone。就會(huì)出現(xiàn)異常,這個(gè)問題問題,是關(guān)于mysql中url時(shí)區(qū)的,發(fā)現(xiàn)這個(gè)陷阱如果大家不注意可能都會(huì)遇到,本文主要和大家分享mysql中url時(shí)區(qū)的陷阱該如何規(guī)避。

1.未指定serverTimezone

xml里面配置url

<property name="url" value="jdbc:mysql://localhost:3306/mybatisstudy"/>

出現(xiàn)的異常

Caused by: com.mysql.cj.core.exceptions.InvalidConnectionAttributeException: The server time zone value '?й???????' is unrecognized or represents more than one time zone. You must configure either the server or JDBC driver (via the serverTimezone configuration property) to use a more specifc time zone value if you want to utilize time zone support.

您必須配置服務(wù)器或JDBC驅(qū)動(dòng)程序(通過serverTimezone配置屬性),如果您想要使用時(shí)區(qū)支持,則需要使用一個(gè)更詳細(xì)的時(shí)區(qū)值。

2.網(wǎng)上的解決方案

在url后面加上參數(shù)?serverTimezone=utc

<property name="url" value="jdbc:mysql://localhost:3306/springdatastudy?serverTimezone=UTC"/>

2.1.遇到的問題

雖然上面加上時(shí)區(qū)程序不出錯(cuò)了,但是我們?cè)谟胘ava代碼插入到數(shù)據(jù)庫時(shí)間的時(shí)候卻出現(xiàn)了問題。

比如在java代碼里面插入的時(shí)間為:2017-08-21 17:29:56

但是在數(shù)據(jù)庫里面顯示的時(shí)間卻為:2017-08-21 09:29:56

3.根本原因

因?yàn)闀r(shí)區(qū)設(shè)置的問題。

UTC代表的是全球標(biāo)準(zhǔn)時(shí)間 ,但是我們使用的時(shí)間是北京時(shí)區(qū)也就是東八區(qū),領(lǐng)先UTC八個(gè)小時(shí)。

UTC + (+0800) = 本地(北京)時(shí)間

4.解決方案

url的時(shí)區(qū)使用中國(guó)標(biāo)準(zhǔn)時(shí)間。也是就serverTimezone=Asia/Shanghai

4.1 使用java代碼獲取本地的時(shí)區(qū)id

Calendar cal = Calendar.getInstance();
TimeZone timeZone = cal.getTimeZone();
System.out.println(timeZone.getID());
System.out.println(timeZone.getDisplayName());
Asia/Shanghai
中國(guó)標(biāo)準(zhǔn)時(shí)間

相關(guān)推薦:

MySQL中or語句用法示例

MySQL中關(guān)于索引與觸發(fā)器詳解

MySQL中關(guān)于日期函數(shù)匯總

以上就是詳解mysql中url時(shí)區(qū)的陷阱該如何規(guī)避的詳細(xì)內(nèi)容,更多請(qǐng)關(guān)注php中文網(wǎng)其它相關(guān)文章!


學(xué)習(xí)教程快速掌握從入門到精通的SQL知識(shí)。