Що таке командний рядок для зміни системного годинника?


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 дата 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, але ОП та ця відповідь показують, що його встановлено на 24.
Карл 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", саме це мені і було потрібно.
Еміль Врійдагс

0

Короткі версії для встановлення дати або часу:

Щоб встановити дату (встановить час 0: 0: 0):

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

Щоб встановити лише час:

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

Ви можете додати бажаний ".990" за секунди.

Прочитайте довідкову сторінку, щоб отримати додаткові параметри та формати стосовно команди дата:

man date

Примітка. Ви також можете перевірити або встановити апаратний годинник. Про це читайте тут .


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

Це було б правильним твердженням в UBUNTU 14.04.


1
Для всіх, хто перебуває в часовому поясі IST? Не відповідає вам інша відповідь?
Xen2050

Питання не потребує зміни часового поясу.
Abel Melquiades Callejo
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.