通过tzselect设置的是登录用户的session时间格式,要改变系统时区,让其他应用程序,比如mysql或者你编写的java程序获取正确的时区。需要改变/etc/localtime符号链接的指向。
方法1,通过timedatectl命令,本质是创建/etc/localtime文件的符号链接
timedatectl set-timezone 'America/New_York'
方法2,通过符号链接
ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
查看系统时区
timedatectl
TimeZone.getDefault()
默认时区设置system_time_zone=CST #系统时区,从操作系统读取
time_zone=System #每个连接使用的时区,可以通过default-time-zone='+0800' 配置项改变
jdbc:mysql://192.168.228.136/employees?connectionTimeZone=%2B0800&forceConnectionTimeZoneToSession=true
时区以偏移量指定的时候connectionTimeZone=%2B0800
,'+'要转义为%2B
如果time_zone使用字符串指定,比如connectionTimeZone=Asia/Shanghai
那么执行
mysql_tzinfo_to_sql /usr/share/zoneinfo | mysql -u root -p mysql
将时区字符串和偏移量关系导入数据库,参考官方文档time-zone-installation
Comments are closed.