Ustawiam strefę czasową na GMT + 6 na moim komputerze z systemem Linux, kopiując plik zoneinfo do /etc/localtime
, ale date
polecenie wciąż pokazuje czas jako UTCtime-6
. Czy ktoś może mi wyjaśnić to zachowanie?
Zakładam, że date
polecenie powinno wyświetlać UTCtime+6
czas. Oto kroki, które wykonuję:
date
Wed Jan 22 17:29:01 IST 2014
date -u
Wed Jan 22 11:59:01 UTC 2014
cp /usr/share/zoneinfo/Etc/GMT+6 /etc/localtime
date
Wed Jan 22 05:59:21 GMT+6 2014
date -u
Wed Jan 22 11:59:01 UTC 2014
echo $TZ
tworzy coś oprócz pustej linii)? Lepszym pomysłem może być utworzenie dowiązania symbolicznego/etc/localtime
zamiast kopiowania rzeczywistego pliku (w ten sposób będziesz bezpieczny, na wypadek, gdyby dane zoneinfo kiedykolwiek się zmieniły, co najprawdopodobniej nigdy nie zmieni).Odpowiedzi:
Rzuć okiem na ten post na blogu: Jak: 2 metody zmiany strefy czasowej w systemie Linux .
Distros Red Hat
Jeśli korzystasz z dystrybucji takiej jak Red Hat, to twoje podejście do kopiowania pliku byłoby w większości dopuszczalne.
UWAGA: Jeśli szukasz rozwiązania agresywnego, działa to również na Debianie, chociaż poniżej są prostsze podejścia, jeśli potrzebujesz tylko maszyn Debiana.
Zalecałbym jednak link do niego zamiast kopiowania.
Teraz data pokazuje inną strefę czasową:
Dystrybucje Ubuntu / Debian
Aby zmienić strefę czasową w jednej z tych dystrybucji, możesz użyć tego polecenia:
Teraz, kiedy to sprawdzimy:
UWAGA: W Ubuntu 14.04 i nowszych dostępna jest również ta opcja za pomocą jednego polecenia (źródło: Zapytaj Ubuntu - ustawianie strefy czasowej z terminala ):
O użyciu „Etc / GMT + 6”
fragment odpowiedzi @ MattJohnson na SO
źródło
tzdata
, w przeciwnym razie pliki/usr/share/zoneinfo
nie będą istnieć.timedatectl
działa również dla SLES 12.Tak to robię w Ubuntu. Po prostu zamień
Asia/Tokyo
na własną strefę czasową.echo 'Asia/Tokyo' | sudo tee /etc/timezone
sudo dpkg-reconfigure -f noninteractive tzdata
Jest bug w
tzdata
: uzyskać pewne wartości znormalizowane przezdpkg-reconfigure
:źródło
Polecenie tzselect służy do robienia tego, co chcesz.
źródło
TZ
zmienną na lokalną strefę czasową - np. Dla America / Los_Angeles -export TZ=`printf "2\n49\n21\n1\n" | tzselect 2>&1 | tail -1`
. Możesz umieścić tę linię w pliku .profile, as
tzselect`, który sugeruje pomoc, gdybyś go uruchomił po wyświetleniu monitu.