ก่อนปี พ.ศ. 2463 (1920) สยามใช้เวลามาตรฐานกรุงเทพ (Bangkok Mean Time) ซึ่งอิงตามตำแหน่งลองจิจูดของกรุงเทพฯ โดยตรง ก่อนที่จะเปลี่ยนมาใช้ UTC+7 อย่างเป็นทางการเพื่อให้สอดคล้องกับระบบเขตเวลาสากลที่เพิ่งเริ่มแพร่หลายทั่วโลกในขณะนั้น
จากเวลามาตรฐานกรุงเทพสู่ UTC+7
การเปลี่ยนผ่านนี้ทำให้ประเทศไทยมีเขตเวลาเดียวที่ใช้ทั่วประเทศมาจนถึงปัจจุบัน แม้ว่าประเทศจะทอดตัวยาวจากเหนือจรดใต้ก็ตาม และไทยไม่เคยใช้ระบบเวลาออมแสง (DST) เลยตลอดประวัติศาสตร์สมัยใหม่ ต่างจากหลายประเทศในยุโรปที่ยังคงปรับนาฬิกาปีละสองครั้ง
ส่วนต่างเทียบกับ UTC
แต่ละเขตเวลาถูกกำหนดด้วยส่วนต่างเทียบกับ UTC ส่วนต่างนี้ไม่จำเป็นต้องเป็นชั่วโมงเต็มเสมอไป — อินเดียใช้ UTC+5:30 ส่วนเนปาลใช้ UTC+5:45 ซึ่งแปลกยิ่งกว่า
เหตุใดการแปลงเขตเวลาจึงยากในทางปฏิบัติ
กฎเวลาออมแสงถูกเปลี่ยนแปลงโดยรัฐบาลของแต่ละประเทศอย่างคาดเดาไม่ได้ และอาจแตกต่างกันในแต่ละปี ดังนั้นการแปลงเวลาที่เชื่อถือได้จึงต้องใช้ฐานข้อมูลเขตเวลาที่อัปเดตอยู่เสมอ (เช่น IANA Time Zone Database) ไม่ใช่แค่ส่วนต่างชั่วโมงคงที่
ทำไมต้องใช้สิ่งนี้
- แสดงเวลาประชุมอย่างถูกต้องระหว่างทีมในกรุงเทพฯ กับพาร์ตเนอร์ในยุโรปหรือสหรัฐฯ
- แปลง timestamp จาก log ของเซิร์ฟเวอร์เป็นเวลาท้องถิ่นของผู้ใช้
- หลีกเลี่ยงความสับสนเมื่อฝั่งต่างประเทศเปลี่ยนเวลาออมแสงแต่ไทยไม่เปลี่ยน
ไม่ใช่ทุกส่วนต่างเวลาจะเป็นชั่วโมงเต็ม
แม้ว่าเขตเวลาส่วนใหญ่จะมีส่วนต่างจาก UTC เป็นจำนวนชั่วโมงเต็ม แต่ก็มีข้อยกเว้น: อินเดียใช้ UTC+5:30, เนปาลใช้ UTC+5:45 และบางภูมิภาคของออสเตรเลียใช้ UTC+9:30 หรือ UTC+10:30 ควรหลีกเลี่ยงโค้ดที่สันนิษฐานว่าส่วนต่างเป็นทวีคูณของ 60 นาทีเสมอ — นี่คือเหตุผลที่ไลบรารีที่เชื่อถือได้จะอาศัยชื่อเขตเวลา IANA แทนที่จะใช้ส่วนต่างตัวเลขตามอำเภอใจ