Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การแก้ไขปัญหา >> Linux

ตั้งค่าวันที่และเวลาระบบด้วย Unix Epoch: คู่มือขั้นตอนต่อขั้นตอน

Unix Epoch** เริ่มต้นที่ 00:00:00 UTC วันพฤหัสบดี 1 มกราคม 1970 ระบบ Unix/Linux/FreeBSD นับเวลาเป็นจำนวนวินาทีนับจากจุดนี้ (ลบ leap seconds ออก)

หากทราบค่า epoch timestamp สามารถตั้งเวลาระบบให้ตรงกับค่านั้นได้

เปิด CLI

  • Virtual terminal: Ctrl+Alt+F1–F6
  • Graphical terminal: Ctrl+Alt+T หรือค้นหา Terminal

วิธีที่ 1: ใช้ GNU date (Linux ทั่วไป)

ตรวจสอบ timestamp ก่อนตั้งค่า:

date -d '@1501959335'

แปลง epoch → รูปแบบมนุษย์อ่านได้ (เปลี่ยนตัวเลขเป็น timestamp ที่ต้องการ)

ตั้งเวลาระบบ:

date -s '@1501959335'

หากขึ้น Operation not permitted ให้ใช้ sudo:

sudo date -s '@1501959335'

จะขอรหัสผ่านก่อนดำเนินการ

วิธีที่ 2: ใช้ BSD date (FreeBSD, OpenBSD, NetBSD, macOS/Darwin)

ไวยากรณ์ต่างจาก GNU:

แปลง epoch → วันที่:

date -r 1501959335

ตั้งเวลาระบบ:

date "$(date -r 1501959335 +'%y%m%d%H%M.%S')"

ซับซ้อนกว่าเพราะต้องระบุรูปแบบวันที่เอง แต่ทำงานได้เหมือนกัน ต้อง root เช่นกัน

วิธีที่ 3: ดู Unix Time ปัจจุบัน

date +%s

คืนค่าวินาทีนับจาก epoch

แบบกราฟิก (ต้องมี xclock):

xclock -d -utime

จะเปิดหน้าต่างแสดง epoch time แบบ real-time


เกี่ยวกับผู้เขียน

Kevin Arrows — MCTS, 10+ ปีประสบการณ์