Jakie jest polecenie wiersza poleceń służące do zmiany zegara systemowego?


50

Czy istnieje takie polecenie zmiany daty i godziny zegara systemowego?

Na przykład:

Bieżąca data i czas January 1, 1970 22:30:59:980, w którym 59 a 980 odnosi się do sekund i millisecods odpowiednio

I chcę to zmienić na January 2, 1971 23:31:59:990

Czy jest na to polecenie?


Na wypadek, gdyby ktoś był zainteresowany zmianą strefy czasowej. askubuntu.com/questions/3375/…
nassim

Odpowiedzi:


57

Aby ustawić czas w Ubuntu z terminala, możesz użyć następującego polecenia:

data sudo new_date_time_string

gdzie new_date_time_stringmusi być zgodny z formatem MMDDhhmmyyyy.ssopisanym poniżej:

  • MM jest dwucyfrowym miesiącem, od 01 do 12
  • DD jest dwucyfrowym dniem, od 01 do 31, przy czym obowiązują standardowe zasady dla dni w zależności od miesiąca i roku
  • hh to dwucyfrowa godzina, z zastosowaniem okresu 24-godzinnego, a więc wynosi od 00 do 23
  • mm jest dwucyfrową minutą, od 00 do 59
  • yyyyjest rok; może być dwucyfrowa lub czterocyfrowa
  • ssjest dwucyfrowe sekundy. Zwróć uwagę na okres .przed ss.

Źródło: Zarządzaj czasem w Ubuntu poprzez wiersz poleceń .

Tak więc w twoim konkretnym przypadku możesz użyć:

sudo date 010224311971.59

Lub możesz użyć:

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

dokładnie o to prosiłeś.

Źródło: https://serverfault.com/a/338395/181186 .


jaki jest faktyczny format daty ciągu?
Abel Melquiades Callejo

czy to oznacza, że ​​dokładność można ograniczyć tylko do sekund ?
Abel Melquiades Callejo

@AbelMelquiadesCallejo Zobacz moje nowe zmiany.
Radu Rădeanu

1
Czy ktoś mógłby wyjaśnić? hhjest między 00 a 23, ale OP i ta odpowiedź wskazują, że jest ustawiony na 24.
Carl H

@CarlH Świetny haczyk na to! Zobacz nowe zmiany
Abel Melquiades Callejo

16

Łatwa droga:

ntpdate -s ntp.ubuntu.com

Aby zmienić strefę czasową:

dpkg-reconfigure tzdata

Prawdopodobnie potrzebujesz sudo.


4
Zastanawiam się, który serwer NTP ustawi czas na styczeń 1971 r.
mur

Czy Twój serwer jest podłączony do Internetu? Sprawdź oficjalną dokumentację na help.ubuntu.com/lts/serverguide/NTP.html
Ninecols

4

Możesz użyć datepolecenia, aby zmienić czas i będziesz potrzebować sudopozwolenia, aby to zrobić; przykładem ustawienia daty na 27 czerwca 2014 r. i godzinę 01:17 jest:

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

3

Odkąd systemd został wprowadzony w Ubuntu, poprawny sposób to:

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

na przykład

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

Działa to również np. Z sudo date --set="+2 hours"dokładnie tym, czego potrzebowałem.
Emile Vrijdags

0

Krótkie wersje do ustawiania tylko daty lub godziny:

Aby ustawić datę (ustawi czas na 0: 0: 0):

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

Aby ustawić tylko czas:

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

Możesz dodać żądany „.990” do sekund.

Przeczytaj stronę podręcznika, aby uzyskać więcej opcji i formatów dotyczących polecenia date:

man date

Uwaga: możesz także sprawdzić lub ustawić zegar sprzętowy. Przeczytaj o tym tutaj .


Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.