解決MySQL存儲時間出現不一致的問題
用Java在獲取了系統時間后,存入MySQL數據庫時,當時間的類型為datetime或Timestamp時發現數據庫的存儲與本地時間不一致。
很大原因是,MySQL設置的時區與你本地時區不一致造成的,解決辦法可以修改MySQL的時區配置,這個大家網上搜一下就有了。
本人推薦第二種方法就是在數據庫連接的那個DBUtil類里根據你項目的實際需要進行設置,不如我在如下代碼里更改了時區與亞洲上海同時區
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就是用來設置時區的。
在從MySQL里取出Timestamp數據時,顯示到瀏覽器的時候,總會在末尾出現一個.0,很討厭,怎么辦呢?
可以使用如下EL表達式和JSTL標簽的將其格式化,其中log.date就是所查出的時間數據
<fmt:formatDate value='${log.date}' type='date' pattern='yyyy-MM-dd HH:mm:ss' />
注意:若寫成yyyy-MM-dd hh:mm:ss這樣將區分不了上午與下午
補充:Mysql存儲時間或日期錯位問題
這里說一下mysql數據庫添加記錄的時候,出現日期錯位一天或者時間不對的問題。
遇到問題的場景代碼邏輯沒問題,單步執行發現存的時候日期也沒錯,但是存到數據庫日期就不對了。
原因原因就是你配置數據源連接加的參數內容的問題,如果沒猜錯你配置的serverTimezone這個參數應該是UTC,這個是使用的時區不對導致存數據的時候日期錯位。
把serverTimezone設置成Asia/Shanghai,如下圖,這樣再試一下,問題就解決了。
以上為個人經驗,希望能給大家一個參考,也希望大家多多支持好吧啦網。如有錯誤或未考慮完全的地方,望不吝賜教。
相關文章:
1. 恢復從 Access 2000、 Access 2002 或 Access 2003 中數據庫刪除表的方法2. Mysql入門系列:MYSQL創建、刪除、索引和更改表3. 啟動MYSQL出錯 Manager of pid-file quit without updating file.4. Mysql入門系列:建立MYSQL客戶機程序的一般過程5. Microsoft Office Access修改代碼字體大小的方法6. ACCESS轉SQL數據庫相關的幾個技能7. mysql數據存放的位置在哪8. MySQL 8.0 之索引跳躍掃描(Index Skip Scan)9. 數據庫人員手冊之ORACLE應用源碼10. 循序漸進講解Oracle數據庫管理員的職責
