Możesz użyć np. date --set='-2 years'Do cofnięcia zegara o dwa lata, pozostawiając wszystkie pozostałe elementy identyczne. Możesz zmienić miesiąc i dzień miesiąca w ten sam sposób. Nie sprawdziłem, co się stanie, jeśli to obliczenie spowoduje, że data nie istnieje, np. Podczas przełączania DST, ale zachowanie powinno być identyczne z typowym zachowaniem „ustaw datę i godzinę na konkretne wartości”.
Christian Severin,
Zakładając, że próbujesz ustawić datę na bieżącą godzinę, możesz zrobić, sudo ntpd -gqaby system aktualizował się automatycznie przy użyciu usługi NTTP.
Uruchom jako root lub under sudo. Zmiana tylko jednego roku / miesiąca / dnia stanowi większe wyzwanie i będzie wymagała powtarzania bitów z bieżącej daty. Istnieją również narzędzia graficzne GUI wbudowane w główne środowiska pulpitu, zwykle dostępne przez całą dobę.
Aby zmienić tylko część czasu, możesz użyć podstawienia polecenia w ciągu daty:
date -s "2014-12-25 $(date +%H:%M:%S)"
zmieni datę, ale zachowaj czas. Zobacz man dateformatowania szczegółów skonstruować inne kombinacje: poszczególne elementy są %Y, %m, %d, %H, %M, i %S.
Nie ma takiej możliwości. Możesz jednak użyć date -s "2014-12-25 $(date +%H:%M:%S)"do zmiany daty i ponownego wykorzystania bieżącej godziny.
Michael Homer,
przybył tutaj, godziny i minuty pasowały do aktualnego czasu. - fajnie
Alex2php
2
date: cannot set date: Invalid argument
Chris Stryczyński
@MichaelHomer @SHW można zmienić tylko datę za pomocą polecenia takiego jak date -s 2018-01-01. Ktoś udostępnił to w odpowiedzi również: superuser.com/questions/870068/…
baptx
42
czas systemu
Możesz użyć, dateaby ustawić datę systemową. Implementacja GNU date(jak w większości niewbudowanych systemów opartych na Linuksie) akceptuje wiele różnych formatów, aby ustawić czas, oto kilka przykładów:
ustaw tylko rok:
date -s 'next year'
date -s 'last year'
ustaw tylko miesiąc:
date -s 'last month'
date -s 'next month'
ustaw tylko dzień:
date -s 'next day'
date -s 'tomorrow'
date -s 'last day'
date -s 'yesterday'
date -s 'friday'
zestaw wszystko razem:
date -s '2009-02-13 11:31:30' #that's a magical timestamp
Czas sprzętu
Teraz ustawiony jest czas systemowy, ale możesz zsynchronizować go z zegarem sprzętowym:
Służy --showdo drukowania czasu sprzętowego:
hwclock --show
Możesz ustawić zegar sprzętowy na bieżący czas systemowy:
Punkty bonusowe za zilustrowanie nieoczywistych sposobów ustawiania daty za pomocą przykładów oraz za wskazanie różnicy między „czasem systemowym” a „zegarem sprzętowym”. Bardzo pomocna odpowiedź!
Mark Edington,
3
Zmień datę za pomocą datepolecenia. Jednak polecenie oczekuje pełnej daty jako argumentu:
# date -s "20141022 09:45"
Wed Oct 22 09:45:00 BST 2014
Aby zmienić część daty, wyślij bieżącą datę z częścią daty, którą chcesz zmienić jako ciąg, a wszystkie inne jako zmienne formatujące datę. Następnie przekaż to date -spolecenie, aby ustawić:
# date -s "$(date +'%Y12%d %H:%M')"
Mon Dec 22 10:55:03 GMT 2014
Próbuję zmienić, ale to się nie zmienia: - $ sudo date --set = "2015-09-30 10: 05: 59.990" Śr 30 września 10:05:59 +0530 2015 $ data czw maj 23 15:10:37 +0530 2019
Vinod
2
Dla takich jak ja z ESXI 5.1, system odpowiedział mi
~ # date -s "2016-03-23 09:56:00"
date: invalid date '2016-03-23 09:56:00'
Zamiast tego musiałem użyć określonej komendy ESX:
esxcli system time set -y 2016 -M 03 -d 23 -H 10 -m 05 -s 00
date [OPTION]... [+FORMAT]
date [-u|--utc|--universal] [MMDDhhmm[[CC]YY][.ss]]
Łatwo
Najprostszym sposobem jest użycie, date -sponieważ pozwala na użycie prostych dat względnych
$ date -s yesterday; date
date: cannot set date: Operation not permitted
Sat Jan 5 07:21:07 EST 2019
Sun Jan 6 07:21:07 EST 2019
Data nie uległa zmianie, ponieważ została wykonana z ograniczonym użytkownikiem $. Jeśli naprawdę chcesz zmienić datę, użyj root ( #) lub sudo:
$ sudo date -s yesterday; date
Sat Jan 5 07:21:07 EST 2019
Sat Jan 5 07:21:07 EST 2019
Tak więc zmiana dowolnej części względnej daty jest tak łatwa, jak jej nadanie:
$ date -s "5 years ago"
Mon Jan 6 08:26:26 EST 2014
$ date -s "+6 months"
Sat Jul 6 08:28:39 EDT 2019
$ date -s "+3 hours -13 minutes"
Sun Jan 6 11:16:59 AST 2019
Bezwzględne daty są nieco bardziej złożone, ponieważ wymagają więcej szczegółów:
$ date -s "2001-07-23 10:11:12"
Możesz też użyć polecenia date dwa razy:
$ date -s "$(date +'%Y-%m-%d %H:%M:%S')"
zastąp dowolną z %poprawną wartością, a data zostanie ustawiona (tylko jako root).
$ date -s "$(date +'%Y-11-%d %H:%M:%S')"
Wed Nov 6 08:37:15 EST 2019
bezpośredni
Formularz połączenia z drugą datą służy do bezpośredniej zmiany daty systemowej.
date [-u|--utc|--universal] [MMDDhhmm[[CC]YY][.ss]]
Użyłem polecenia daty i formatu czasu wymienionych poniżej, aby pomyślnie ustawić datę z polecenia powłoki terminalu wykonanego na Android Things, który używa jądra Linux.
Ponieważ nie działa to ani z GNU, ani z BSD date, czy mógłbyś dodać więcej informacji o tym, dla którego systemu jest to istotne i jak to ma związek z tym konkretnym pytaniem.
date --set='-2 years'
Do cofnięcia zegara o dwa lata, pozostawiając wszystkie pozostałe elementy identyczne. Możesz zmienić miesiąc i dzień miesiąca w ten sam sposób. Nie sprawdziłem, co się stanie, jeśli to obliczenie spowoduje, że data nie istnieje, np. Podczas przełączania DST, ale zachowanie powinno być identyczne z typowym zachowaniem „ustaw datę i godzinę na konkretne wartości”.sudo ntpd -gq
aby system aktualizował się automatycznie przy użyciu usługi NTTP.Odpowiedzi:
Użyj
date -s
:Uruchom jako root lub under
sudo
. Zmiana tylko jednego roku / miesiąca / dnia stanowi większe wyzwanie i będzie wymagała powtarzania bitów z bieżącej daty. Istnieją również narzędzia graficzne GUI wbudowane w główne środowiska pulpitu, zwykle dostępne przez całą dobę.Aby zmienić tylko część czasu, możesz użyć podstawienia polecenia w ciągu daty:
zmieni datę, ale zachowaj czas. Zobacz
man date
formatowania szczegółów skonstruować inne kombinacje: poszczególne elementy są%Y
,%m
,%d
,%H
,%M
, i%S
.źródło
date -s "2014-12-25 $(date +%H:%M:%S)"
do zmiany daty i ponownego wykorzystania bieżącej godziny.date: cannot set date: Invalid argument
date -s 2018-01-01
. Ktoś udostępnił to w odpowiedzi również: superuser.com/questions/870068/…czas systemu
Możesz użyć,
date
aby ustawić datę systemową. Implementacja GNUdate
(jak w większości niewbudowanych systemów opartych na Linuksie) akceptuje wiele różnych formatów, aby ustawić czas, oto kilka przykładów:ustaw tylko rok:
ustaw tylko miesiąc:
ustaw tylko dzień:
zestaw wszystko razem:
Czas sprzętu
Teraz ustawiony jest czas systemowy, ale możesz zsynchronizować go z zegarem sprzętowym:
Służy
--show
do drukowania czasu sprzętowego:Możesz ustawić zegar sprzętowy na bieżący czas systemowy:
Lub czas systemowy do zegara sprzętowego
źródło
Zmień datę za pomocą
date
polecenia. Jednak polecenie oczekuje pełnej daty jako argumentu:Aby zmienić część daty, wyślij bieżącą datę z częścią daty, którą chcesz zmienić jako ciąg, a wszystkie inne jako zmienne formatujące datę. Następnie przekaż to
date -s
polecenie, aby ustawić:zmienia miesiąc na 12. miesiąc - grudzień.
Formaty dat to:
%Y
- Rok%m
- miesiąc%d
- dzień%H
- Godzina%M
- Minutaźródło
Dla takich jak ja z ESXI 5.1, system odpowiedział mi
Zamiast tego musiałem użyć określonej komendy ESX:
źródło
Polecenie zmiany daty systemowej to
date
.Istnieją dwa sposoby wywołania polecenia date (w systemie Linux):
Łatwo
Najprostszym sposobem jest użycie,
date -s
ponieważ pozwala na użycie prostych dat względnychData nie uległa zmianie, ponieważ została wykonana z ograniczonym użytkownikiem
$
. Jeśli naprawdę chcesz zmienić datę, użyj root (#
) lub sudo:Tak więc zmiana dowolnej części względnej daty jest tak łatwa, jak jej nadanie:
Bezwzględne daty są nieco bardziej złożone, ponieważ wymagają więcej szczegółów:
Możesz też użyć polecenia date dwa razy:
zastąp dowolną z
%
poprawną wartością, a data zostanie ustawiona (tylko jako root).bezpośredni
Formularz połączenia z drugą datą służy do bezpośredniej zmiany daty systemowej.
Więc :
Ustawi datę na 23 listopada na 08h i 12min.
BSD ma podobne polecenie, ale inny format ([[[[[[cc] yy] mm] dd] HH] MM [.ss]).
Spróbuj
date
jako ograniczony użytkownik, aby zobaczyć, co by zrobił (bez zmiany czegokolwiek):Lub, jeśli naprawdę chcesz zmienić datę, jako root:
Pamiętaj, że wpłynie to na usługi takie jak NTP lub chrony. A jeśli zrestartowany zresetuje datę z powrotem do prawdziwej.
Dodaj rok, aby ustawić rok:
Lub CCYY, aby ustawić rok i wiek:
źródło
Użyłem polecenia daty i formatu czasu wymienionych poniżej, aby pomyślnie ustawić datę z polecenia powłoki terminalu wykonanego na Android Things, który używa jądra Linux.
data 092615002017.00
MMDDHHMMRRRR.SS
MM - miesiąc - 09
DD - Dzień - 26
GG - godzina - 15
MM - Min. 00
RRRR - rok - 2017
.SS - drugi - 00
źródło
date
, czy mógłbyś dodać więcej informacji o tym, dla którego systemu jest to istotne i jak to ma związek z tym konkretnym pytaniem.