คุณสามารถตั้งค่าเขตเวลาสำหรับช่วงเวลาของแบบสอบถามได้ดังนี้:
TZ=America/New_York date
บันทึกช่องว่างระหว่างการTZ
ตั้งค่าและdate
คำสั่ง ในrc
เชลล์เหมือนและเป้าหมายคล้าย Bourne ที่ตั้งค่าTZ
ตัวแปรสำหรับบรรทัดคำสั่งเท่านั้น ในเปลือกหอยอื่น ๆ ( csh
, tcsh
, fish
) คุณก็สามารถใช้env
คำสั่งนี้แทน:
env TZ=America/New_York date
TL; DR
บนระบบ Linux เขตเวลาถูกกำหนดในไฟล์ใน/usr/share/zoneinfo
ไดเรกทอรี โครงสร้างนี้มักเรียกว่า "ฐานข้อมูลโอลสัน" เพื่อเป็นเกียรติแก่ผู้ก่อตั้ง
กฎสำหรับแต่ละเขตเวลาจะถูกกำหนดเป็นบรรทัดไฟล์ข้อความซึ่งจะถูกรวบรวมเป็นไฟล์ไบนารี บรรทัดที่คอมไพล์แล้วให้กำหนดชื่อโซน ช่วงของข้อมูลและเวลาที่ใช้กับโซน ออฟเซ็ตจาก UTC สำหรับเวลามาตรฐาน และสัญกรณ์สำหรับการกำหนดวิธีการเปลี่ยนไปและกลับจากการปรับเวลาตามฤดูกาลจะเกิดขึ้นถ้ามี
ตัวอย่างเช่นไดเรกทอรี "อเมริกา" มีข้อมูลที่จำเป็นสำหรับนิวยอร์กในไฟล์America/New_York
ตามที่ใช้งานด้านบน
ระวังว่าข้อมูลจำเพาะของโซนที่ไม่มีอยู่จริง (ชื่อไฟล์) จะถูกละเว้นอย่างเงียบ ๆ และเวลา UTC จะถูกรายงาน ตัวอย่างเช่นนี้รายงานเวลาที่ไม่ถูกต้อง:
TZ="America/New York" date ### WRONG ###
ข้อมูลจำเพาะ UNIX เดี่ยวรุ่น -3 ที่รู้จักกันในชื่อ SUSv3 หรือ POSIX-2001 ตั้งข้อสังเกตว่าเพื่อความสะดวกในการพกพาสตริงอักขระที่ระบุคำอธิบายเขตเวลาควรเริ่มต้นด้วยอักขระโคลอน ดังนั้นเราสามารถเขียน:
TZ=":America/New_York" date
TZ=":America/Los_Angeles" date
เป็นวิธีทางเลือกสำหรับข้อกำหนดของเขตเวลาโดยใช้ชื่อพา ธ ไปยังไฟล์คำอธิบาย SUSv3 อธิบายโมเดล POSIX ในรูปแบบนี้สตริงถูกกำหนดเป็น:
std offset [dst[offset][,start-date[/time],end-date[/time]]]
โดยที่std
เป็นชื่อองค์ประกอบมาตรฐานและdst
เป็นหนึ่งในการปรับเวลาตามฤดูกาล แต่ละชื่อประกอบด้วยอักขระสามตัวขึ้นไป ค่าoffset
นี้เป็นค่าบวกสำหรับเขตเวลาทางตะวันตกของเส้นเมริเดียนสำคัญและค่าลบสำหรับทิศตะวันออกของเมอริเดียน ออฟเซ็ตถูกเพิ่มในเวลาท้องถิ่นเพื่อรับ UTC (ชื่อเดิม GMT) start
และend
เขตเวลาระบุว่าเมื่อเปลี่ยนมาตรฐาน / กลางวันเกิดขึ้น
ตัวอย่างเช่นในสหรัฐอเมริกาตะวันออกเวลามาตรฐานเร็วกว่า UTC 5 ชั่วโมงและเราสามารถระบุEST5EDT
แทนAmerica/New_York
ได้ ทางเลือกเหล่านี้ไม่ได้รับการยอมรับเสมอโดยเฉพาะอย่างยิ่งสำหรับโซนนอกสหรัฐอเมริกาและหลีกเลี่ยงได้ดีที่สุด
HP-UX (UNIX ที่สอดคล้องกับ SUSv3) ใช้กฎเกี่ยวกับใจความ/usr/lib/tztab
และชื่อ POSIX เช่น EST5EDT, CST6CDT, MST7MDT, PST8PDT ไฟล์มีกฎทางประวัติศาสตร์ทั้งหมดสำหรับแต่ละโซนเวลาซึ่งคล้ายกับฐานข้อมูล Olson
หมายเหตุ:คุณควรจะสามารถค้นหาเขตเวลาทั้งหมดได้โดยการตรวจสอบไดเรกทอรีต่อไปนี้: /usr/share/zoneinfo
.