ฐานข้อมูล tzdata ใช้งานอย่างไร


10

ระบบปฏิบัติการที่แตกต่างกันดูเหมือนจะจัดการกับการปรับเวลาตามฤดูกาล (DST) แตกต่างกัน ฉันชอบวิธีการ Cisco IOS ซึ่งง่ายมากและให้เปลี่ยนวันที่และเวลาเมื่อ DST เริ่มต้นและสิ้นสุด ตัวอย่างเช่น:

clock summer-time EDT recurring 2 Sun Mar 2:00 1 Sun Nov 2:00 60

.. ปรับนาฬิกาล่วงหน้า 60 นาทีในวันอาทิตย์ของสัปดาห์ที่สองของเดือนมีนาคมเวลา 2:00 น. และเปลี่ยนนาฬิกากลับ 60 นาทีในวันอาทิตย์แรกของเดือนพฤศจิกายนเวลา 2:00 Linux จัดการกับ DST อย่างไร ฉันรู้ว่ามีtzdataแพคเกจที่มีไฟล์ข้อมูลเขตเวลาและไฟล์เหล่านั้นติดตั้งใน/usr/share/zoneinfo/ไดเรกทอรี ไฟล์เหล่านั้นถูกใช้งานอย่างไรและโดยยูทิลิตี้ใด ฉันสามารถดูการเปลี่ยนแปลงจาก UTC (2) และชื่อเขตเวลา (EET และ EEST) ในไฟล์:

T60:~# strings /usr/share/zoneinfo/posix/Europe/Helsinki
TZif2
    HMT
EEST
TZif2
EEST
EET-2EEST,M3.5.0/3,M10.5.0/4
T60:~# 

นอกจากM3นี้อาจเป็นเดือนที่สามและM10เป็นเดือนที่สิบ? นอกจากนี้ควรระบุออฟเซ็ตบางแห่งด้วย ตัวอย่างเช่นใน IOS สามารถกำหนดค่าได้เมื่อ DST เกิดขึ้นนาฬิกาจะเลื่อนตัวอย่างเช่น 90 หรือ 120 นาทีแทนที่จะเป็น 60

คำตอบ:


4

หากคุณดูที่หน้า Wikipedia เกี่ยวกับฐานข้อมูล TZ :

สิ่งที่สกัดมา

รูปแบบไฟล์

ฐานข้อมูล tz ถูกเผยแพร่เป็นชุดของไฟล์ข้อความซึ่งแสดงรายการกฎและการเปลี่ยนโซนในรูปแบบที่มนุษย์สามารถอ่านได้ สำหรับการใช้งานไฟล์ข้อความเหล่านี้จะถูกรวบรวมเป็นชุดของไฟล์ไบนารีที่ไม่ขึ้นอยู่กับแพลตฟอร์ม - หนึ่งต่อเขตเวลา ซอร์สโค้ดอ้างอิงประกอบด้วยคอมไพเลอร์ชื่อ zic (data information compiler) รวมถึงโค้ดเพื่ออ่านไฟล์เหล่านั้นและใช้ใน API มาตรฐานเช่น localtime () และ mktime ()

การค้นหาเพิ่มเติมทำให้คำถาม & คำตอบนี้เกี่ยวกับ stackoverflow มีชื่อว่า: คำถามเกี่ยวกับรูปแบบไฟล์ฐานข้อมูล Timezoneซึ่งมีข้อมูลเพิ่มเติมเกี่ยวกับรูปแบบไฟล์

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.