เทคนิคการเซ็ต Timezone ใน USA

โปรแกรมบน CentOS ที่ควรติดตั้งใช้งานร่วมกับ VoIP Server

เทคนิคการเซ็ต Timezone ใน USA

โพสต์โดย nuiz » 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 ก่อน
โค้ด: เลือกทั้งหมด
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
** หากมีปัญหากับอุปกรณ์ที่ซื้อมาเองหรือบริการที่ทำขึ้นมาเอง ให้โพสต์ถามในเว็บบอร์ดนี้นะครับ **
** งานเร่งด่วนติดต่อว่าจ้างที่เบอร์ 08-5161-9439 อีเมล์ iamaladin@gmail.com ไลน์ NuizVoip ครับ **
nuiz
Diamond Member
 
โพสต์: 6993
ลงทะเบียนเมื่อ: 24 มี.ค. 2010 09:33

ย้อนกลับไปยัง CentOS - The Community Enterprise Operating System

ผู้ใช้งานขณะนี้

กำลังดูบอร์ดนี้: ไม่มีสมาชิกใหม่ และ บุคคลทั่วไป 0 ท่าน

cron