溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點(diǎn)擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

如何解決MySQL存儲(chǔ)時(shí)間出現(xiàn)不一致的問題

發(fā)布時(shí)間:2021-04-28 09:23:17 來源:億速云 閱讀:551 作者:小新 欄目:開發(fā)技術(shù)

小編給大家分享一下如何解決MySQL存儲(chǔ)時(shí)間出現(xiàn)不一致的問題,希望大家閱讀完這篇文章之后都有所收獲,下面讓我們一起去探討吧!

用Java在獲取了系統(tǒng)時(shí)間后,存入MySQL數(shù)據(jù)庫時(shí),當(dāng)時(shí)間的類型為datetime或Timestamp時(shí)發(fā)現(xiàn)數(shù)據(jù)庫的存儲(chǔ)與本地時(shí)間不一致。

很大原因是,MySQL設(shè)置的時(shí)區(qū)與你本地時(shí)區(qū)不一致造成的,解決辦法可以修改MySQL的時(shí)區(qū)配置,這個(gè)大家網(wǎng)上搜一下就有了。

本人推薦第二種方法

就是在數(shù)據(jù)庫連接的那個(gè)DBUtil類里根據(jù)你項(xiàng)目的實(shí)際需要進(jìn)行設(shè)置,不如我在如下代碼里更改了時(shí)區(qū)與亞洲上海同時(shí)區(qū)

private static String driver = "com.mysql.cj.jdbc.Driver";
    private static String url = "jdbc:mysql://127.0.0.1:3306/mypetstore?serverTimezone=Asia/Shanghai&useSSL=false";

serverTimezone=Asia/Shanghai就是用來設(shè)置時(shí)區(qū)的。

在從MySQL里取出Timestamp數(shù)據(jù)時(shí),顯示到瀏覽器的時(shí)候,總會(huì)在末尾出現(xiàn)一個(gè).0,很討厭,怎么辦呢?

可以使用如下EL表達(dá)式和JSTL標(biāo)簽的將其格式化,其中l(wèi)og.date就是所查出的時(shí)間數(shù)據(jù)

<fmt:formatDate value="${log.date}" type="date" pattern="yyyy-MM-dd HH:mm:ss" />

注意:若寫成yyyy-MM-dd hh:mm:ss這樣將區(qū)分不了上午與下午

補(bǔ)充:Mysql存儲(chǔ)時(shí)間或日期錯(cuò)位問題

這里說一下mysql數(shù)據(jù)庫添加記錄的時(shí)候,出現(xiàn)日期錯(cuò)位一天或者時(shí)間不對的問題。

遇到問題的場景

代碼邏輯沒問題,單步執(zhí)行發(fā)現(xiàn)存的時(shí)候日期也沒錯(cuò),但是存到數(shù)據(jù)庫日期就不對了。

原因

原因就是你配置數(shù)據(jù)源連接加的參數(shù)內(nèi)容的問題,如果沒猜錯(cuò)你配置的serverTimezone這個(gè)參數(shù)應(yīng)該是UTC,這個(gè)是使用的時(shí)區(qū)不對導(dǎo)致存數(shù)據(jù)的時(shí)候日期錯(cuò)位。

如何解決MySQL存儲(chǔ)時(shí)間出現(xiàn)不一致的問題

解決辦法

把serverTimezone設(shè)置成Asia/Shanghai,如下圖,這樣再試一下,問題就解決了。

如何解決MySQL存儲(chǔ)時(shí)間出現(xiàn)不一致的問題

看完了這篇文章,相信你對“如何解決MySQL存儲(chǔ)時(shí)間出現(xiàn)不一致的問題”有了一定的了解,如果想了解更多相關(guān)知識,歡迎關(guān)注億速云行業(yè)資訊頻道,感謝各位的閱讀!

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI