问题

今天,有游戏客户找来说,2016.11.6号洛杉矶将会进入冬时令,他们在洛杉矶机房的ECS在使用的是洛杉矶的当地时间,问我,进入冬时令,对他们的linux有啥影响?是否需要做好,批量修改linux时间的准备??

这个想想也不可能啊,难道,洛杉矶的linux管理员,每年到了 冬时令时间就要批量修改时间??

当然不可能,那么究竟是怎么回事儿呢??

首先,我在洛杉矶买了一个ECS,发现使用的还是上海时间,但是,有的云客户,买了之后,自己修改了linux的时区

[root@iZrj93ljqlvdsrgjxhup9zZ ~]# cat /etc/sysconfig/clock
ZONE="Asia/Shanghai"
UTC=false
ARC=false
[root@iZrj93ljqlvdsrgjxhup9zZ ~]# ll /etc/localtime
-rw-r--r--. 1 root root 405 8月  14 2014 /etc/localtime
[root@iZrj93ljqlvdsrgjxhup9zZ ~]# zdump -v /etc/localtime

比如,这个游戏客户就是 修改成了 洛杉矶的时区

实际上,每个城市是否使用夏时令和当地政策有关系,像美国,也不是每个城市都使用夏时令的,洛杉矶就是使用夏时令,其实,一个地区的夏时令,冬时令已经在linux系统中做好了预设,当你将你的linux设置好了时区,你的linux知道是否使用夏时令,并且知道哪天进入夏令时,冬令时,也知道什么时候应该调快或者调慢一小时;另外一个细节,/usr/share/zoneinfo/America/下有很多的城市和地区,我想因为这个缘故,即使A和B都是在一个时区下,如果A当地政策使用了夏时令,B没有使用夏时令,那我估计在 linux的预设当中A,B两个城市也是不一样的;

使用

[root@iZrj93ljqlvdsrgjxhup9zZ ~]# zdump -v /usr/share/zoneinfo/Asia/Shanghai
[root@iZrj93ljqlvdsrgjxhup9zZ ~]# zdump -v /usr/share/zoneinfo/America/Los_Angeles

Linux上夏时令的应对-LMLPHP

isdst=1 表示进行了使用了夏令时,夏时令英文缩写(Daylight Saving Time:DST),isdst难道不就是进入夏时令的意思嚒!

你会看到,linux已经知道,在哪一年的哪一天,这个时区,需要调快还是需要调慢一小时,不需要系统管理员批量修改时间的;

网上有种说法前提是:

cat /etc/sysconfig/clock
ZONE="Asia/Taipei"
UTC=true
ARC=false
设置 UTC=true 会自动调节夏令时(如果那个地区有夏令时的话)

但是我如下的测试中,并没有UTC=true,发现,时间依然会改变;

测试

测试在2016年 11月 06日 星期日 01:59:59 时间会不会回退一小时

首先,将vm时间设置为洛杉矶时区的

[root@iZrj93ljqlvdsrgjxhup9zZ ~]# ln -sf  /usr/share/zoneinfo/America/Los_Angeles  /etc/localtime

关闭ntpd,避免影响

[root@iZrj93ljqlvdsrgjxhup9zZ ~]# service ntpd stop
Shutting down ntpd:                                        [  OK  ]

设置时间为2016年 11月 06日 星期日 01:59:59

[root@iZrj93ljqlvdsrgjxhup9zZ ~]# date -s "2016-11-06 01:59:00"
2016年 11月 06日 星期日 01:59:00 PDT

观察时间

[root@iZrj93ljqlvdsrgjxhup9zZ ~]# for i in `seq 1 1000`;do date;sleep 1;done

Linux上夏时令的应对-LMLPHP

PDT 是 Pacific Daylight Time 的缩写

美国夏季始于每年4月的第1个周日,

止于每年10月的最后一个周日。

夏令时比正常时间早一小时,

与PDT时间相对应的是PST , Pacific Standard Time 。 夏时制结束后就是PST

PST是太平洋标准时间(西八区)

与北京时间(东八区)时差-16个小时,

也就是北京时间减去16就是PST时间。而PDT比PST早1个小时,就是说PDT与北京时间时差为-15小时

参考

1986年至1991年,中华人民共和国在全国范围实行了六年夏令时,zdump证明linux系统是知道的

Linux上夏时令的应对-LMLPHP

美国

美国夏时制的实行与否,完全由各州、各县自行决定,不由联邦政府统一规定。目前美国绝大部分地区实行夏令时,美国不实行夏令时地区包括:

1.

西澳大利亚州目前不使用夏令时了

西澳大利亚州目前不使用夏令时了

亚利桑那州的绝大部分地区(除东北一小区块)

2.夏威夷州

3.波多黎各和维京群岛

4.美属萨摩亚、关岛和北马里亚纳群岛

美国和加拿大原本于每年10月的最后一个星期日凌晨2时起实施冬令时间;4月的第一个星期日凌晨2时起,恢复夏令时间。

但是根据美国国会最新通过的能源法案,为加强日光节约,自2007年起延长夏令时间,从每年3月的第二个星期日开始,至每年11月的第一个星期日结束,因此,冬令时间将缩短约一个月。之所以安排在周日,是为了便于生活的调整不至于受到较大的影响。

哪两个城市是在同一个时区下,但是,一个使用了夏时令,一个没有使用夏时令,这个要找找了

https://www.ibm.com/support/knowledgecenter/zh/ssw_aix_71/com.ibm.aix.cmds6/zdump.htm

05-11 17:35