เหตุใด Zone.tab จึงขาดหายไปในโซนเวลามากมาย


12

มีไฟล์โซนมากกว่าพันไฟล์ในกล่อง * ระวังของคุณ (ใน / user / share / zoneinfo) หลายคนแตกต่างกันเฉพาะในวันที่ในอดีตที่มีความเกี่ยวข้องเล็กน้อยสำหรับโปรแกรมที่สนใจเฉพาะเกี่ยวกับวันที่ล่าสุด - หรือแม้กระทั่งเพียงเกี่ยวกับเวลาปัจจุบัน แต่ไม่ว่าจะมีพวกมันมากมายและมันถูกกฎหมายอย่างสมบูรณ์ที่จะเลือกใด ๆ เป็นเขตเวลาสำหรับระบบของคุณรวมถึงใช้มันสำหรับโปรแกรมหรือเชลล์เฉพาะโดยการตั้งค่าตัวแปรสภาพแวดล้อม TZ พวกเขาทั้งหมดถูกต้อง

แล้วมีไฟล์ zone.tab (/usr/share/zoneinfo/zone.tab) มันแสดงรายการโซนเวลาเพียง 400 โซนเท่านั้น (414 ในระบบของฉัน) มันหายไปมากโซนเวลา ดังนั้นคำถามคือทำไม ทำไมพวกเขาถึงไม่อยู่ในนั้นทั้งหมด? และเนื่องจากพวกเขาไม่ได้อยู่ที่นั่นทั้งหมดแล้วจะมีวิธีการตัดสินใจอย่างไร

zone.tab จะมีรหัสประเทศและลองจิจูดและละติจูดสำหรับแต่ละโซนเวลาที่แสดง (ซึ่งน่าจะเป็นเหตุผลของการมีอยู่ของไฟล์) และไม่ใช่ทุกโซนเวลาที่มี (เช่น UTC ไม่มี และมันไม่ได้อยู่ใน zone.tab) ดังนั้นไม่สามารถแสดงรายการทุกโซนเวลาใน zone.tab แต่ทำไมไม่ทั้งหมดที่ตรงกับเมืองหรือภูมิภาคที่แท้จริง (ตามที่พวกเขาทำส่วนใหญ่) ที่ระบุไว้ในไฟล์ ทำไมถึงมีเพียง 414 อันจาก 1,000+ ที่ใช้งานได้จริง

คำตอบ:


6

กระทู้ชื่อA คำฟ้องใหม่สำหรับการรวมของ zone.tabเสนอคำอธิบายเกี่ยวกับสิ่งที่zone.tabใช้

การใช้งานหลักดูเหมือนว่าจะแสดงแผนที่ของเมืองและสถานที่ตั้งของพวกเขาเพื่อให้ผู้ใช้สามารถเลือกเขตเวลาโดยคลิกที่เมืองที่อยู่ใกล้พวกเขา

โดยที่ในใจไม่จำเป็นต้องรู้ชื่อแทนทั้งหมดสำหรับแต่ละเมืองรู้วิธีที่ต้องการหนึ่งในการอ้างอิงถึงมันก็เพียงพอแล้ว (แต่ดูเหมือนว่าจะมีอย่างน้อยหนึ่งเมืองในแต่ละประเทศ)

นามแฝงอื่น ๆ สำหรับแต่ละโซนจะถูกเก็บไว้ในซอร์สโค้ดtzdata

ตัวอย่างเช่นbackwardไฟล์มี

Link    Asia/Kolkata        Asia/Calcutta

เพื่อให้ผู้คนสามารถใช้การสะกดใหม่หรือการสะกดเก่า

ทุกไฟล์อื่น ๆที่ถูกสร้างขึ้นจากซอร์สโค้ดนี้โดยใช้/usr/share/zoneinfozic

แต่ไม่มีนามแฝงมากกว่า 600 รายการเหตุใดจึงแตกต่างกันมาก

มักจะมีสามรุ่นของแต่ละเขตที่สร้าง: posix, rightและเริ่มต้นระบบของคุณ

$ cd /usr/share/zoneinfo
$ find right -type f | wc -l
581
$ find posix -type f | wc -l
581
$ find . \( -name posix -o -name right \) -prune -o -type f | wc -l
586

รหัสtzcode Makefileแสดงวิธีการสร้างสิ่งเหล่านั้นและกล่าวถึงเหตุผลสำหรับพวกเขา: posixละเว้นวินาทีกระโดดrightรวมถึงพวกเขา

ดูสิ่งนี้ด้วย:


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