1. 程式人生 > 其它 >Linux 夏令時相關(轉)

Linux 夏令時相關(轉)

找一個實行夏令時的國家。以紐西蘭為例 

通過yast命令修改為該國家的本地時間,date -s 10/15/2016 修改到夏令時,測試tomcat日誌列印是否有DST標誌。

 

問題

今天,有遊戲客戶找來說,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

 

 

 

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,避免影響

service ntpd stop

設定時間為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

 

 

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系統是知道的

 

 

美國

美國夏時制的實行與否,完全由各州、各縣自行決定,不由聯邦政府統一規定。目前美國絕大部分地區實行夏令時,美國不實行夏令時地區包括:
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