ในประเทศ USA, Canada, Mexico มีเวลาอยู่ 2 แบบคือ PDT (Pacific Daylight Time) และ PST (Pacific Standard Time) โดยที่ PDT = UTC - 7 hours (ช้ากว่าไทย 14 ชั่วโมง) และ PST = UTC - 8 hours (ช้ากว่าไทย 15 ชั่วโมง) จะเห็นว่าเวลาแบบ PST จะช้ากว่า PDT อยู่ 1 ชั่วโมง
ในแต่ละปีจะมีการเปลี่ยนสลับไปมาระหว่าง PDT และ PST ตามฤดูกาลครับ โดยใช้ PDT ในฤดูร้อน และใช้ PST ในฤดูหนาว ในแต่ละปีเราสามารถเช็คได้ว่าจะมีการเปลี่ยนในวันที่เท่าไหร่ เวลาเท่าไหร่ เช็คล่วงหน้าก็ได้ เช็คย้อนหลังก็ได้
ถ้าต้องการลองเล่นดู วิธีการทำก็ไม่ยากครับ ตามขั้นตอนต่อไปนี้
1. เซ็ต Timezone ในเครื่องให้เป็นเวลาของ America ก่อน
- โค้ด: เลือกทั้งหมด
rm -rf /etc/localtime
ln -s /usr/share/zoneinfo/America/Los_Angeles
ไม่ต้องเอา Los_Angeles ตามผมก็ได้นะครับ จะเอาเป็นเมืองอื่นๆก็ได้ ดูชื่อเมืองได้ในไดเร็คตอรี /usr/share/zoneinfo/America ก็พิมพ์ชื่อเมืองตามนั้นเป๊ะๆเลย
2. ติดตั้ง ntp เพื่อให้มันดึงเวลามาจาก Time Server
- โค้ด: เลือกทั้งหมด
yum -y install ntp
3. ดึงเวลามาจาก Time server
- โค้ด: เลือกทั้งหมด
/usr/sbin/ntpdate time.navy.mi.th
Time server ที่ผมดึงเวลามานี้ อยู่ในประเทศไทยครับ เป็นของทหารเรือ ถึงแม้ว่าจะอยู่ในประเทศไทย แต่เครื่องจะดู Timezone ที่เราเซ็ตไว้เป็นหลัก แล้วก็จะปรับเวลาให้เป็นของ Timezone นั้นๆให้เอง ไม่ใช่เวลาของประเทศไทยครับ
4. เช็คเวลา
- โค้ด: เลือกทั้งหมด
date
ผลลัพท์
Wed Mar 14 21:08:20 PDT 2012
จะเห็นว่าเวลาเป็น PDT ช้ากว่าเวลาไทย 14 ชั่วโมง
5. เช็คว่ามีการเปลี่ยนเวลาจาก PDT/PST วันไหน เวลาไหน
- โค้ด: เลือกทั้งหมด
zdump -v /etc/localtime | grep 2012
/etc/localtime Sun Mar 11 09:59:59 2012 UTC = Sun Mar 11 01:59:59 2012 PST isdst=0 gmtoff=-28800
/etc/localtime Sun Mar 11 10:00:00 2012 UTC = Sun Mar 11 03:00:00 2012 PDT isdst=1 gmtoff=-25200
/etc/localtime Sun Nov 4 08:59:59 2012 UTC = Sun Nov 4 01:59:59 2012 PDT isdst=1 gmtoff=-25200
/etc/localtime Sun Nov 4 09:00:00 2012 UTC = Sun Nov 4 01:00:00 2012 PST isdst=0 gmtoff=-28800
จะเห็นว่า Sun Mar 11 10:00:00 2012 เปลี่ยนเป็น PDT ตรงกับเวลามาตรฐาน UTC = Sun Mar 11 03:00:00 2012 และในวันที่ Sun Nov 4 09:00:00 2012 ก็จะกลับมาเป็น PST อีกเช่นเดิม
เช็คล่วงหน้าปี 2020 ครับ
/etc/localtime Sun Mar 8 09:59:59 2020 UTC = Sun Mar 8 01:59:59 2020 PST isdst=0 gmtoff=-28800
/etc/localtime Sun Mar 8 10:00:00 2020 UTC = Sun Mar 8 03:00:00 2020 PDT isdst=1 gmtoff=-25200
/etc/localtime Sun Nov 1 08:59:59 2020 UTC = Sun Nov 1 01:59:59 2020 PDT isdst=1 gmtoff=-25200
/etc/localtime Sun Nov 1 09:00:00 2020 UTC = Sun Nov 1 01:00:00 2020 PST isdst=0 gmtoff=-28800
จะเห็นว่าในแต่ละปีนะครับ วันที่จะไม่ตรงกัน
และถ้าต้องการเซ็ตกลับให้เป็นเวลาไทย มีขั้นตอนดังต่อไปนี้ครับ
- โค้ด: เลือกทั้งหมด
rm -rf /etc/localtime
ln -s /usr/share/zoneinfo/Asia/Bangkok /etc/localtime
ntpdate time.navy.mi.th
และสุดท้ายรันคำสั่ง date เพื่อเช็คเวลา
** เพื่อความชัวร์ว่าเวลาจะตรงอยู่ตลอดเวลา ผมแนะนำให้ใส่บรรทัดต่อไปนี้ไว้ในไฟล์ /etc/rc.d/rc.local นะครับ **
- โค้ด: เลือกทั้งหมด
/usr/sbin/ntpdate time.navy.mi.th