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.