หากการกำหนดเวลาสัมบูรณ์เป็นข้อกังวลหลักของคุณอาจเป็นการดีที่สุดที่จะหลีกเลี่ยงUTCเนื่องจากมีไว้สำหรับจุดประสงค์นั้น คำตอบของ Michael นั้นมีประโยชน์มากเมื่อคุณต้องทำงานกับปัญหา แต่โดยทั่วไปแล้วคุณควรหลีกเลี่ยงปัญหาที่คุณสามารถทำได้
เมื่อระบบของคุณไม่ได้ตั้งค่าเป็น UTC ตามค่าเริ่มต้นวิธีที่ง่ายที่สุดในการผ่านเขตเวลาในคือโดยคำนำหน้าคำสั่งของคุณด้วยTZ
ตัวแปรสภาพแวดล้อม สิ่งนี้ จำกัด การสลับโซนไปที่คำสั่งเดียวและป้องกันไม่ให้ตัวแปรรั่วไหลในคำสั่งที่ตามมา
$ NOW=$(date '+%s')
$ date -d @$NOW
Wed Jun 11 23:44:35 EDT 2014
$ TZ=UTC date -d @$NOW
Thu Jun 12 03:44:35 UTC 2014
สิ่งที่คุณไม่ควรทำคือส่งออกTZ
ตัวแปรเนื่องจากอาจทำให้สับสนในการแก้ไขปัญหาดังที่อธิบายไว้ด้านล่าง
$ export TZ=UTC
$ date -d @$NOW
Thu Jun 12 03:44:35 UTC 2014
$ TZ=EDT date -d @$NOW
Thu Jun 12 03:44:35 EDT 2014
date
...