Jak zmienić ustawienia strefy czasowej z wiersza poleceń


221

Mam maszynę wirtualną ustawioną na PST, którą ma kilku kolegów w różnych strefach czasowych.

Jeśli chcę zmienić strefę czasową na EST i GMT , co muszę zrobić?

Odpowiedzi:


288

Posługiwać się timedatectl

sudo timedatectl set-timezone <timeszone>

Przykłady:

  • Strefa czasowa jako EST

    sudo timedatectl set-timezone EST
    
  • Strefa czasowa jako UTC

    sudo timedatectl set-timezone UTC
    
  • Lista wszystkich ważnych stref czasowych

    timedatectl list-timezones
    

To polecenie jest idealne dla skryptów automatyzacji, ponieważ nie wymaga interakcji użytkownika w porównaniu z innymi podanymi odpowiedziami dpkg-reconfigure tzdata.


1
Nie jestem fanem komentarzy +1, ale umieszczam tutaj jeden, ponieważ działało to dla mnie w najlepszy sposób. Chciałem raczej jednego wiersza poleceń w jednym wierszu, aby zmienić strefę czasową, niż chciałem uruchomić całe menu lub program GUI (nie wiem co to tzdatadziała, jak to działa, ale nie muszę tego robić polecenie jednowierszowe). Dzięki!
Phil Ryan

działa jak urok;)
user332660

Co ciekawe, robi coś nieco innego niż tzdata. Miałem problem z tym, że czas Java różni się od czasu systemowego po zastosowaniu poprawki. Tzdata nie działał, aby rozwiązać problem, ale tak się stało.
Daniel Bower,

1
to nie działało dla mnie; jednak dpkg-reconfigurezałatwiło sprawę.
Antti Haapala,

14.04.4 serwer Ubuntu
Antti Haapala

40

Jako root musisz wykonać:

dpkg-reconfigure tzdata

Należy uruchomić narzędzie oparte na menu, które pozwala zmienić strefę czasową.


32

Następujące również działają. W przypadku GMT:

ln -sf /usr/share/zoneinfo/GMT /etc/localtime

W przypadku EST:

ln -sf /usr/share/zoneinfo/EST /etc/localtime

8
Myślę, że lepiej byłoby połączyć jeden z plików miejskich niż GMT lub EST, ponieważ wtedy będą śledzić czas letni, podczas gdy łączenie (np.) GMT nie zmieni czasu systemowego, aby odzwierciedlić, kiedy obowiązuje czas letni w Twoim mieście. np .:ln -sf /usr/share/zoneinfo/Europe/London /etc/localtime
Asfand Qazi

to jest najlepsze
Hasan Tıngır

16

Najłatwiejszym sposobem, szczególnie na serwer, jest wyszczególnienie stref czasowych:

timedatectl list-timezones

I wybierz swój, na przykład:

timedatectl set-timezone Europe/Athens

Otóż ​​to! , :-)


6

Aby uruchomić jeden program z innym ustawieniem strefy czasowej, ustaw TZzmienną środowiskową, np. Uruchom, TZ=Pacific/Kiritimati dateaby zobaczyć, która jest godzina na Wyspie Bożego Narodzenia lub export TZ=Pacific/Kiritimatiaby ustawienie trwało dla sesji powłoki.


6

Edytuj timezoneplik w /etcfolderze jako:

Etc/GMT

Możesz użyć następnego formatu:

Region "/" City 

Przykład /etc/timezone:

Europe/Athens

lub

Europe/Paris
Europe/London

Możesz eksperymentować z: dpkg-reconfigure tzdata i sprawdzić plik strefy czasowej kota.

Musisz ponownie uruchomić lub ponownie uruchomić usługę (nie usługę NTTP). Nie wiem który. Jeśli ktoś wie, podziel się z nami. (Testowane na Ubuntu 15.10 zmiana jest uwzględniana natychmiast)


4
cp -p /usr/share/zoneinfo/US/Pacific /etc/localtime

Polecam ZNOWU linkowanie, jak wspomniano przez innych. Jeśli jakiś skrypt przypadkowo /etc/localtimenadpisuje plik, wówczas zastępuje on plik strefy czasowej Pacyfiku ... i zastąpienie go jest trochę uciążliwe.

Wystarczy skopiować plik Pacific na plik czasu lokalnego za pomocą powyższego polecenia.


To faktycznie działało dla mnie. Myślę, że jest jakiś błąd w Dockerze, ansible (?). Zarówno timedatectl, jak i dpkg-reconfigure tzdata dla mnie nie powiodły się. Po skopiowaniu strefa czasowa zmieniła się z EST na PDT.
niedz.

2

Używam następującego skryptu, aby zapytać użytkownika, którą strefę czasową ustawić, a następnie potwierdzić, że rzeczywiście została ustawiona:

#!/bin/sh
sudo timedatectl set-timezone $(tzselect)
echo
echo timedatectl says:
timedatectl

Nazywam to tz-set.


0

Jako root musisz wykonać:

ln -fs /usr/share/zoneinfo/Europe/Warsaw /etc/localtime && dpkg-reconfigure --frontend noninteractive tzdata


Wyjaśnij przynajmniej, jak działa to polecenie, aby zmienić strefę czasową.
Parto

0

To działało dla mnie na GCP Ubuntu 14 przez SSH

  1. sudo su
  2. cp /usr/share/zoneinfo/Asia/Singapore /etc/localtime
  3. Uruchom ponownie serwer
  4. Gotowy
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.