เทคนิคการเซ็ต Timezone ใน USA
โพสต์แล้ว: 15 มี.ค. 2012 11:19
** บทความนี้เหมาะสำหรับท่านที่ชอบลองนู่นนี่เหมือนผมนะครับ **
ในประเทศ 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 ก่อน
ไม่ต้องเอา Los_Angeles ตามผมก็ได้นะครับ จะเอาเป็นเมืองอื่นๆก็ได้ ดูชื่อเมืองได้ในไดเร็คตอรี /usr/share/zoneinfo/America ก็พิมพ์ชื่อเมืองตามนั้นเป๊ะๆเลย
2. ติดตั้ง ntp เพื่อให้มันดึงเวลามาจาก Time Server
3. ดึงเวลามาจาก Time server
Time server ที่ผมดึงเวลามานี้ อยู่ในประเทศไทยครับ เป็นของทหารเรือ ถึงแม้ว่าจะอยู่ในประเทศไทย แต่เครื่องจะดู Timezone ที่เราเซ็ตไว้เป็นหลัก แล้วก็จะปรับเวลาให้เป็นของ Timezone นั้นๆให้เอง ไม่ใช่เวลาของประเทศไทยครับ
4. เช็คเวลา
ผลลัพท์
Wed Mar 14 21:08:20 PDT 2012
จะเห็นว่าเวลาเป็น PDT ช้ากว่าเวลาไทย 14 ชั่วโมง
5. เช็คว่ามีการเปลี่ยนเวลาจาก PDT/PST วันไหน เวลาไหน
/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
จะเห็นว่าในแต่ละปีนะครับ วันที่จะไม่ตรงกัน
และถ้าต้องการเซ็ตกลับให้เป็นเวลาไทย มีขั้นตอนดังต่อไปนี้ครับ
และสุดท้ายรันคำสั่ง date เพื่อเช็คเวลา
** เพื่อความชัวร์ว่าเวลาจะตรงอยู่ตลอดเวลา ผมแนะนำให้ใส่บรรทัดต่อไปนี้ไว้ในไฟล์ /etc/rc.d/rc.local นะครับ **
ในประเทศ 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