服务器、运用和数据信息的時间时区难题
摘要:今日遇到1个难题,在开发设计和检测自然环境中,沒有发现这个难题。在非开发设计和检测自然环境时区的服务器上时,出現的。便是java程序流程中,对SimpleDateFormat运用的难题。...
今日遇到1个难题,在开发设计和检测自然环境中,沒有发现这个难题。在非开发设计和检测自然环境时区的服务器上时,出現的。便是java程序流程中,对SimpleDateFormat运用的难题。
SimpleDateFormat在你未特定时区时,是需的运用内默认设置的时区,默认设置也便是运用所属服务器的时区。这样你全部开展的format或parse,全是在这个時间前提条件下的。最终理清后,发现致使难题的缘故,是由于数据信息库時间和服务运用時间的时区不1致致使的。但针对SimpleDateFormat的应用,1定要圣人这个标准,在务必特定按某个恶性事件开展文件格式变换的情况下,SimpleDateFormat也是有format.setTimeZone()方式,能够设定特定的时区。
MySQL数据信息库时区和時间
假如数据信息库的时区和运用系统软件的不1样,那末将会会致使1些想不到的难题,能够先查询1下数据信息库的時间和时区,必要时开展改动。MySQL查時间就用。
select now(); 便可。查询时区:
show variables like "%time_zone%";
这里的CST(北美中部规范時间) 是UTC⑹时区的著名名字之1,比UTC(融洽全球时)落伍6个小时与UTC的時间误差可写为-06:00. 它在冬季应用。 在夏天,CDT - 北美中部夏令時间(UTC⑸)正在应用中。后边的+08:00便是东8区时区。能够根据下面的指令改动它:
set global time_zone = '+2:00'; set time_zone = '+2:00'; ##改动当今对话时区flush privileges; #马上起效 这样改动只是临时性的。但对调节那时候状况是可行的。落地改动能够改动MySQL配备文档,以后重新启动MySQL:
# vim /etc/my.cnf ##在[mysqld]地区中再加default-time_zone = '+8:00'# /etc/init.d/mysqld restart ##重新启动mysql使新时区起效 记得要重新启动起效。
针对数据信息库的時间,MySQL默认设置的便是所安裝在的设备的時间。改动系统软件時间,就会看到MySQL時间跟随转变。
centos时区和時间
查验时,必须将运用所属系统软件的時间和时区和数据信息库的1期较为。centos应用date查询時间是不是与数据信息库1致,基础能够发现二者时区难题。根据ls -l /etc/localtime 查询时区。例如:
[root@localhost ~]# ls -l /etc/localtimelrwxrwxrwx. 1 root root 35 6月 5 2018 /etc/localtime -> ../usr/share/zoneinfo/Asia/Shanghai 能够根据timedatectl list-timezones查询全部的时区。改动系统软件时区为其他,并查询改动結果:
ln -sf /usr/share/zoneinfo/Africa/Harare /etc/localtime[root@localhost ~]# ls -l /etc/localtimelrwxrwxrwx 1 root root 33 8月 21 11:19 /etc/localtime -> /usr/share/zoneinfo/Africa/Harare[root@localhost ~]# date2019年 08月 21日 礼拜3 11:19:15 CAT windows的时区。
Windows的时区和時间改动,只必须点一下時间后,点一下“变更时间和時间设定值”,开展改动便可以了。