คำสั่งบรรทัดคำสั่งสำหรับการเปลี่ยนนาฬิการะบบคืออะไร?


50

มีคำสั่งสำหรับเปลี่ยนวันที่และเวลาของนาฬิการะบบหรือไม่?

ตัวอย่างเช่น:

วันที่และเวลาปัจจุบันคือJanuary 1, 1970 22:30:59:980ที่ที่59และ980อ้างถึงวินาทีและมิลลิวินาทีตามลำดับ

และฉันต้องการเปลี่ยนเป็น January 2, 1971 23:31:59:990

มีคำสั่งสำหรับสิ่งนี้หรือไม่?


ในกรณีที่มีคนสนใจเปลี่ยนเขตเวลาด้วย askubuntu.com/questions/3375/…
nassim

คำตอบ:


57

ในการตั้งเวลาใน Ubuntu จากเทอร์มินัลคุณสามารถใช้คำสั่งต่อไปนี้:

sudo date new_date_time_string

ที่new_date_time_stringต้องทำตามรูปแบบMMDDhhmmyyyy.ssซึ่งอธิบายไว้ด้านล่าง:

  • MM เป็นเดือนสองหลักระหว่าง 01 ถึง 12
  • DD เป็นวันที่สองหลักระหว่าง 01 ถึง 31 โดยมีกฎปกติสำหรับวันตามเดือนและปีที่สมัคร
  • hh คือสองหลักชั่วโมงโดยใช้ระยะเวลา 24 ชั่วโมงดังนั้นจึงอยู่ระหว่าง 00 ถึง 23
  • mm คือสองหลักนาทีระหว่าง 00 ถึง 59
  • yyyyเป็นปี; มันอาจเป็นตัวเลขสองหลักหรือสี่หลัก
  • ssคือสองหลักวินาที ขอให้สังเกตงวดก่อน.ss

ที่มา: การจัดการเวลาใน Ubuntu ผ่านบรรทัดคำสั่ง

ดังนั้นในกรณีเฉพาะของคุณคุณสามารถใช้:

sudo date 010224311971.59

หรือคุณสามารถใช้:

sudo date --set="1971-01-02 23:31:59.990"  && date --rfc-3339=ns

ซึ่งเป็นสิ่งที่คุณถาม

ที่มา: https://serverfault.com/a/338395/181186


รูปแบบที่แท้จริงของวันที่สตริงคืออะไร?
Abel Melquiades Callejo

หมายความว่าความแม่นยำสามารถ จำกัด ได้เพียงไม่กี่วินาทีเท่านั้น ?
Abel Melquiades Callejo

@AbelMelquiadesCallejo ดูการแก้ไขใหม่ของฉัน
Radu Rădeanu

1
มีคนอธิบายได้ไหม hhอยู่ระหว่าง 00 ถึง 23 แต่ OP และคำตอบนี้แสดงว่าถูกตั้งไว้ที่ 24
Carl H

@CarlH เยี่ยมมากในเรื่องนั้น! ดูการแก้ไขใหม่
Abel Melquiades Callejo

16

วิธีที่ง่าย:

ntpdate -s ntp.ubuntu.com

วิธีเปลี่ยนเขตเวลา:

dpkg-reconfigure tzdata

sudoคุณอาจต้อง


4
เซิร์ฟเวอร์ NTP ตัวไหนที่จะตั้งเวลาเป็นมกราคม 1971 ฉันสงสัยว่า
muru

เซิร์ฟเวอร์ของคุณเชื่อมต่อกับอินเทอร์เน็ตหรือไม่ ตรวจสอบเอกสารอย่างเป็นทางการที่help.ubuntu.com/lts/serverguide/NTP.html
Ninecols

4

คุณสามารถใช้dateคำสั่งเพื่อเปลี่ยนเวลาและคุณต้องsudoได้รับอนุญาตก่อน ตัวอย่างการตั้งวันที่ 27 มิถุนายน 2014 และเวลาถึง 1:17 น. คือ:

sudo date --set "27 Jun 2014 1:17:00"

3

เนื่องจาก systemd ถูกเปิดตัวใน Ubuntu วิธีที่ถูกต้องคือ:

# timedatectl set-time "RFC 3339-compliant string"

เช่น

# timedatectl set-time "2002-10-02T10:00:00-05:00"
# timedatectl set-time "10:35"
# timedatectl set-time "+2 hours"

สิ่งนี้ใช้ได้กับเช่นsudo date --set="+2 hours"ซึ่งเป็นสิ่งที่ฉันต้องการ
Emile Vrijdags

0

เวอร์ชั่นย่อสำหรับการตั้งค่าวันที่หรือเวลาเท่านั้น:

ในการตั้งวันที่ (จะตั้งเวลาเป็น 0: 0: 0):

date +%Y%m%d -s "19710102"

ในการตั้งเวลาเท่านั้น:

date +%T -s "23:31:59"

คุณสามารถเพิ่ม ".990" ที่ต้องการในไม่กี่วินาที

อ่าน man pageสำหรับตัวเลือกและรูปแบบเพิ่มเติมที่เกี่ยวข้องกับคำสั่ง date:

man date

หมายเหตุ: คุณอาจต้องการตรวจสอบหรือตั้งค่านาฬิกาฮาร์ดแวร์ อ่านได้ที่นี่


-3
sudo date --set="Mon Feb 16 08:49:56 IST 2015"

นั่นจะเป็นคำสั่งที่ถูกต้องใน UBUNTU 14.04


1
สำหรับทุกคนในเขตเวลา IST เท่านั้น? คำตอบอื่น ๆ ไม่ทำงานสำหรับคุณ?
Xen2050

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