mysql java寫入時間少14小時


查看時區:

mysql> show variables like '%time_zone%';
+------------------+--------+
| Variable_name    | Value  |
+------------------+--------+
| system_time_zone | CST    |
| time_zone        | SYSTEM |
+------------------+--------+
2 rows in set (0.02 sec)

查看當前時間也正常:

mysql> select now();
+---------------------+
| now()               |
+---------------------+
| 2016-12-27 22:29:59 |
+---------------------+
1 row in set (0.00 sec)

 

但是java寫入是就少14小時。這是因為:在解析成預編譯語句的時候,誤將CST(China Standard Time utc+8)解析成CST(Central Standard Tim UTC-6),美國中部標准時間,所以少14個小時。

兩種解決辦法:

1. 命令修改(重啟mysql后失效)

mysql> set GLOBAL time_zone = '+8:00';
Query OK, 0 rows affected (0.00 sec)

mysql> show variables like '%time_zone%';
+------------------+--------+
| Variable_name    | Value  |
+------------------+--------+
| system_time_zone | CST    |
| time_zone        | +08:00 |
+------------------+--------+
2 rows in set (0.04 sec)

 

2. 修改配置文件my.cnf(在/etc/my.cnf或者/etc/mysql/my.cnf)

在 [mysqld] 之下添加
default-time-zone=timezone
來修改時區。如東八區:
default-time-zone = '+8:00'
重啟mysql:
$ service mysql start

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM