2 คะแนน โดย GN⁺ 2024-10-31 | 1 ความคิดเห็น | แชร์ทาง WhatsApp
  • เขตเวลานั้นซับซ้อน แต่เพราะคอมพิวเตอร์ต้องนำไปใช้งาน ความประหลาดจึงอยู่ภายในขอบเขตที่มีจำกัด
    • Asia/Kathmandu มีออฟเซ็ตจาก UTC ที่แปลก
    • Africa/Casablanca เข้ากับโมเดลเขตเวลาได้ไม่ดีนัก จึงต้องฮาร์ดโค้ดไว้
    • America/Nuuk เริ่มใช้เวลาออมแสงจาก -01:00
    • Africa/Cairo และ America/Santiago เริ่มใช้เวลาออมแสงตอน 24:00 (ไม่ใช่ 0:00)
    • Australia/Lord_Howe มีกฎเวลาออมแสงที่ประหลาดที่สุด

PGXIIREAM: สมเด็จพระสันตะปาปาเกรกอรีที่ 13 ปกครองทุกสิ่ง

  • โลกส่วนใหญ่ใช้ระบบเวลาที่อิงกับปฏิทินเกรกอเรียน
  • ปฏิทินเกรกอเรียนมีประโยชน์มากในการทำให้ตำแหน่งของดวงอาทิตย์สอดคล้องอย่างสม่ำเสมอตลอดปี
  • UTC คือการทำให้ปฏิทินเกรกอเรียนเป็นมาตรฐานสมัยใหม่ และทั้งโลกใช้มันเป็นเกณฑ์ในการตั้งเวลา

อธิกวินาทีไม่สำคัญ

  • การหมุนของโลกกำลังช้าลง จึงมีการเพิ่มอธิกวินาทีเพื่อชดเชย
  • อธิกวินาทีสามารถมองข้ามได้ เพราะภาษาโปรแกรมไม่ได้แทนค่า 61 วินาที
  • ผู้ให้บริการคลาวด์แก้ปัญหานี้ด้วยการทำให้นาฬิกาเดินช้าลงในช่วงอธิกวินาที

เขตเวลาที่แปลกประหลาด

Asia/Kathmandu มีออฟเซ็ตที่แปลก

  • เนปาลเร็วกว่า UTC อยู่ 5 ชั่วโมง 45 นาที
  • คอมพิวเตอร์สามารถรู้ข้อมูลนี้ได้ผ่านฐานข้อมูลเขตเวลา IANA

สตริงอย่าง PDT หรือ CET ไม่มีความหมาย

  • ตัวระบุเขตเวลาอาจกำกวม และหลายเขตเวลาก็ใช้ตัวระบุเดียวกัน

เขตเวลาที่มีเวลาออมแสงแสดงอย่างไร?

  • กฎการสลับเวลาออมแสงมีความซับซ้อน และคอมพิวเตอร์จะคำนวณเวลาท้องถิ่นจากกฎเหล่านี้

Africa/Casablanca และ Asia/Gaza เดินตามดวงจันทร์ แต่เขตเวลาเดินตามดวงอาทิตย์

  • โมร็อกโกและกาซาปรับเวลาออมแสงตามรอมฎอน ซึ่งต้องฮาร์ดโค้ดไว้

America/Nuuk เปลี่ยนเป็นเวลาออมแสงตอน -1 นาฬิกา

  • กรีนแลนด์เริ่มใช้เวลาออมแสงพร้อมกับยุโรป แต่ในเวลาท้องถิ่นจะเริ่มตอน -1 นาฬิกา

America/Santiago และ Africa/Cairo เปลี่ยนตอน 24:00

  • เขตเวลาเหล่านี้สลับเวลาออมแสงตอน 24:00 ซึ่งหมายถึงการข้ามไปวันถัดไป

Australia/Lord_Howe มีการเปลี่ยนเวลาออมแสงที่ประหลาดที่สุด

  • เกาะลอร์ดฮาวมีการเปลี่ยนเวลาออมแสงครั้งละ 30 นาที

สรุปของ GN⁺

  • เขตเวลานั้นซับซ้อน แต่เพราะคอมพิวเตอร์ต้องนำไปใช้งาน ความประหลาดจึงอยู่ภายในขอบเขตที่มีจำกัด
  • Australia/Lord_Howe เป็นเขตเวลาที่มีเอกลักษณ์ที่สุด เพราะเปลี่ยนเวลาออมแสงครั้งละ 30 นาที
  • บทความนี้มีประโยชน์ในการทำความเข้าใจความซับซ้อนของเขตเวลา และอาจน่าสนใจสำหรับโปรแกรมเมอร์
  • โปรเจ็กต์ที่มีฟังก์ชันคล้ายกันคือ tzdb

1 ความคิดเห็น

 
GN⁺ 2024-10-31
ความคิดเห็นจาก Hacker News
  • ฐานข้อมูล tz ไม่ได้คำนวณการเปลี่ยนเขตเวลาก่อนบิกแบง การประทับเวลาก่อนบิกแบงจึงน่าสงสัยในเชิงกายภาพ

    • ตัวอย่างเช่น Glib ยังคงใช้กฎของบราซิลปี 1913 ในการคำนวณการประทับเวลาของเซาเปาลู
    • ไม่อนุญาตวินาทีอธิกสุรทินก่อนบิกแบงเช่นกัน
  • เขตเวลา Africa/Addis_Ababa ไม่มีใครในเอธิโอเปียใช้งานจริง

    • คนท้องถิ่นใช้เวลาแบบชดเชยไป 6 ชั่วโมง
    • ช่วง AM เริ่มตอนรุ่งสาง และช่วง PM เริ่มตอนพลบค่ำ
  • ไม่จริงที่ภาษาการเขียนโปรแกรมไม่สามารถแทนนาทีที่มี 61 วินาทีได้

    • Raku รองรับวินาทีอธิกสุรทิน
    • DateTime.pm ของ Perl 5 ก็รองรับวินาทีอธิกสุรทินเช่นกัน ซึ่งเพิ่มความซับซ้อน
    • วินาทีอธิกสุรทินแทบไม่ได้ใช้งาน และเพิ่มความซับซ้อนของโค้ด
  • เขตเวลา Asia/Jerusalem มีความซับซ้อนจากประเด็นด้านศาสนาและรัฐ

    • ด้วยเหตุผลทางศาสนา การตัดสินใจเรื่องเวลาออมแสงต้องเจรจากันใหม่ทุกปี
    • มีข้อยกเว้นเพื่อไม่ให้เวลาออมแสงสิ้นสุดในช่วง Rosh HaShanah
  • ประสบการณ์การเขียนฟังก์ชันเพื่อหาเวลาท้องถิ่นจากที่อยู่ในสหรัฐฯ

    • การแมปชื่อรัฐกับเขตเวลาแบบตายตัวทำได้ยากเพราะมีกรณีขอบ
    • จึงซื้อไฟล์ CSV ที่แมป ZIP code กับ UTC offset มาใช้งาน
    • มีเขตเวลาที่ซับซ้อนเพราะดินแดนโพ้นทะเลและฐานทัพของสหรัฐฯ
  • เขตเวลาของปาเลสไตน์นั้นรัฐบาลจะประกาศวันเริ่มและสิ้นสุดเวลาออมแสงทุกปีโดยไม่มีวันที่ตายตัว

    • การประกาศล่วงหน้าไม่ถึงหนึ่งสัปดาห์อาจทำให้เกิดปัญหาหลายอย่าง
  • เป็นเรื่องอ่านที่น่าสนใจเกี่ยวกับความยืดหยุ่นของซอฟต์แวร์เขตเวลา

    • นโยบายเวลาออมแสงอาจไม่ได้จำกัดอยู่แค่การปรับ 60 นาที
    • ประเทศหนึ่งอาจมี offset ที่เปลี่ยนไปอย่างต่อเนื่องตลอดทั้งปีได้
  • จะเกิดความสับสนเมื่อรัฐบาลยกเลิกเวลาออมแสงแล้วเลื่อนเขตเวลาในปีถัดไป

    • ระหว่างพัฒนาแอป Android เคยเกิดปัญหาเพราะฐานข้อมูลเขตเวลาถูกฝังอยู่ใน system image
  • ฐานข้อมูล tz คือ diff ของ diff ที่บันทึกความต่างจาก UTC

    • มีการอัปเดตอยู่เรื่อย ๆ และ changelog ถูกเก็บไว้ใน git
    • อาจเขียนแทนได้ว่า diff^4
  • ความต่างเวลาออมแสง 30 นาทีไม่ใช่เขตเวลาที่แปลกที่สุด

    • เขตเวลา Antarctica/Troll, Morocco และ Gaza มีกฎที่ระบบไม่สามารถแสดงออกได้
    • วินาทีอธิกสุรทินไม่มีประโยชน์กับโปรแกรมเมอร์ และส่วนใหญ่ถูกมองข้าม