So ändern Sie die Zeitzoneneinstellungen über die Befehlszeile

221

Ich habe eine virtuelle Maschine, die auf PST eingestellt ist , die einige Kollegen in verschiedenen Zeitzonen haben.

Was muss ich tun, wenn ich die Zeitzone in EST und GMT ändern möchte?

manyxcxi
quelle

Antworten:

288

Verwenden timedatectl

sudo timedatectl set-timezone <timeszone>

Beispiele:

  • Zeitzone als EST

    sudo timedatectl set-timezone EST
    
  • Zeitzone als UTC

    sudo timedatectl set-timezone UTC
    
  • Auflistung aller gültigen Zeitzonen

    timedatectl list-timezones
    

Dieser Befehl ist ideal für Automatisierungsskripten, da keine Benutzerinteraktion erforderlich ist, während er mit der anderen gegebenen Antwort verglichen wird, die auf basiert dpkg-reconfigure tzdata.

Jossef Harush
quelle
1
Ich bin kein Fan von +1 Kommentaren, aber ich setze hier einen, da dies für mich am besten funktioniert hat. Ich wollte ein einziges einzeiliges Befehlszeilentool, um die Zeitzone zu ändern, anstatt ein ganzes Menü oder GUI-Programm zu starten (ich weiß nicht, was tzdatafunktioniert, wie es funktioniert, aber ich muss es nicht tun) einzeiliger Befehl). Vielen Dank!
Phil Ryan
funktioniert wie ein Zauber;)
User332660
Interessanterweise macht es etwas anderes als tzdata. Ich hatte ein Problem mit der Java-Zeit, die sich von der Systemzeit nach dem Anwenden eines Patches unterschied. Tzdata hat nicht funktioniert, um das Problem zu beheben, aber dies tat es.
Daniel Bower
1
das hat bei mir nicht funktioniert; aber das dpkg-reconfigurehat den Trick gemacht.
Antti Haapala
14.04.4 Ubuntu Server
Antti Haapala
40

Als root müssen Sie ausführen:

dpkg-reconfigure tzdata

Es sollte ein menübasiertes Tool gestartet werden, mit dem Sie die Zeitzone ändern können.

maxschlepzig
quelle
32

Folgendes funktioniert auch. Für GMT:

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

Für EST:

ln -sf /usr/share/zoneinfo/EST /etc/localtime
pm_labs
quelle
8
Ich denke, es wäre besser, eine der Stadtdateien als GMT oder EST zu verknüpfen, da sie dann die Sommerzeit verfolgen, wohingegen die Verknüpfung von (z. B.) GMT die Systemzeit nicht ändert, um zu reflektieren, wenn die Sommerzeit wirksam ist in deiner Stadt. zB:ln -sf /usr/share/zoneinfo/Europe/London /etc/localtime
Asfand Qazi
Das ist das Beste
Hasan Tıngır
16

Der einfachste Weg, insbesondere zu einem Server, ist das Auflisten von Zeitzonen:

timedatectl list-timezones

Und wähle deine, zum Beispiel:

timedatectl set-timezone Europe/Athens

Das ist es! , :-)

Dimitrios
quelle
6

Um ein Programm mit einer anderen Zeitzoneneinstellung auszuführen, legen Sie die TZUmgebungsvariable fest, z. B. um TZ=Pacific/Kiritimati datedie Uhrzeit auf der Weihnachtsinsel anzuzeigen oder export TZ=Pacific/Kiritimatium die letzte Einstellung für eine Shell-Sitzung zu erhalten.

Gilles
quelle
6

Bearbeiten Sie die timezoneDatei im /etcOrdner wie folgt:

Etc/GMT

Sie können das nächste Format verwenden:

Region "/" City 

Beispiel von /etc/timezone:

Europe/Athens

oder

Europe/Paris
Europe/London

Sie können mit: experimentieren dpkg-reconfigure tzdata und die Zeitzonendatei überprüfen.

Sie müssen einen Dienst neu starten oder neu starten (nicht den NTP-Dienst). Ich weiß nicht welche. Wenn jemand weiß, teilen Sie uns dies bitte mit. (Getestet unter Ubuntu 15.10 wird die Änderung sofort berücksichtigt)

chasapis.christos
quelle
4
cp -p /usr/share/zoneinfo/US/Pacific /etc/localtime

Ich empfehle gegen Verlinkung wie von anderen erwähnt. Wenn ein Skript versehentlich Ihre /etc/localtimeDatei überschreibt, überschreibt es Ihre Pacific-Zeitzonendatei ... und es ist ein bisschen mühsam, sie zu ersetzen.

Kopieren Sie einfach die Pacific-Datei mit dem obigen Befehl über die localtime-Datei.

J Roysdon
quelle
Das hat bei mir tatsächlich funktioniert. Ich denke, es gibt einen Fehler mit Docker, anfällig (?). Sowohl timedatectl als auch dpkg-reconfigure tzdata sind für mich fehlgeschlagen. Nach dem Kopieren wurde die Zeitzone von EST in PDT geändert.
So,
2

Ich verwende das folgende Skript, um den Benutzer zu fragen, welche Zeitzone eingestellt werden soll, und bestätige dann, dass sie tatsächlich eingestellt wurde:

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

Ich nenne es tz-set.

Tom Hale
quelle
0

Als root müssen Sie ausführen:

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

Stefan Sebastian
quelle
Bitte erklären Sie zumindest, wie dieser Befehl zum Ändern der Zeitzone funktioniert.
Parto
0

Dies funktionierte für mich auf GCP Ubuntu 14 via SSH

  1. sudo su
  2. cp /usr/share/zoneinfo/Asia/Singapore /etc/localtime
  3. Starten Sie den Server neu
  4. Getan
Vignesh Chinnaiyan
quelle