Antworten:
Ein Werkzeug, das ich als einfacher empfand, ist dpkg-reconfigure
. Benutzen:
sudo dpkg-reconfigure tzdata
Sie erhalten eine Vielzahl von Optionen, einschließlich einiger, die nicht in enthalten sind tzselect
.
Dies ist vermutlich etwas spät für das OP und eher für andere Suchende gedacht, die hier ankommen.
Wenn Sie eine nicht interaktive Lösung benötigen, probieren Sie diese Lösung aus Ändern der Zeitzone mit dpkg-reconfigure tzdata und debconf-set-selections
echo "Europe/Zurich" > /etc/timezone
dpkg-reconfigure -f noninteractive tzdata
Sie können Ihre Zeitzone ermitteln, indem Sie in / usr / share / zoneinfo stöbern. Tatsächlich kopiert der obige Befehl dpkg-reconfigure die entsprechende Datei von dort nach / etc / localtime. Früher habe ich das nur manuell gemacht, und es scheint gut zu funktionieren.
Seien Sie nicht zu überrascht, wenn lang laufende Prozesse die Änderung nicht übernehmen. zB Apache Log Timestamps kommen in den Sinn. Überlegen Sie, ob dies wichtig ist und ob Sie laufende Prozesse neu starten oder sogar neu starten müssen.
/etc/localtime
existiert noch nicht. Wenn es existiert und ein Softlink zu ist /usr/share/zoneinfo/whatever
Es ist als Basis genommen und es ist /etc/localtime
Das wird entsprechend aktualisiert und überschreibt Ihre Änderungen.
Aktualisieren:
Die kanonische Antwort (für die Ynhockey verdient Kredit) scheint zu sein:
dpkg-reconfigure tzdata
Meine ursprüngliche Antwort ist unten. Ich hätte diese Antwort einfach komplett gelöscht, aber superuser.com lässt nicht zu, dass akzeptierte Antworten gelöscht werden.
http://www.debian-administration.org/articles/213 sagt
Die einfache Möglichkeit, Ihre Zeitzone zu bearbeiten, ist die
/usr/bin/tzselect
Befehl.
...
Sobald Sie Ihre Zeitzone eingestellt haben, möchten Sie möglicherweise die UTC-Einstellung ändern. Auf Debian-Maschinen finden Sie diese in der Datei/etc/default/rcS
. Obwohl dies geändert werden muss, ist ein Neustart erforderlich.
Um es in neueren Debian- und Ubuntu-Versionen (Stretch / Xenial usw.) nicht interaktiv zu bearbeiten, müssen Sie es entfernen /etc/localtime
auch sonst /etc/timezone
wird überschrieben.
echo 'Europe/Zurich' > /etc/timezone
rm /etc/localtime
dpkg-reconfigure -f noninteractive tzdata
Diese Antwort basiert auf der Antwort von mc0e. Ich kann mit meinem Ruf keinen Kommentar abgeben.
TL; DR
echo "TZ=Etc/UTC" >> /etc/environment
tzconfig
woher Etc/UTC
ist Ihre bevorzugte Zeitzone, die Sie verwendet haben tzselect
.
Längere Version
Wenn Sie verwenden
dpkg-reconfigure tzdata
Die Zeitzoneninformationen werden nach dem Neustart nicht beibehalten. Sie können Ihre Einstellungen mit bestätigen
diff -s /etc/localtime /usr/share/zoneinfo/`cat /etc/timezone`
Wenn Sie nur aktualisieren /etc/timezone
ist das Update nicht konsistent mit /etc/localtime
also es ist besser auszuführen
tzconfig
Benutzen tzselect
um herauszufinden, welche Zeitzonen tatsächlich existieren (oder einfach nur zu durchsuchen) /usr/share/zoneinfo
Verzeichnis).
In POSIX-Systemen wird die TZ
sollte vorher Vorrang haben /etc/localtime
:
export TZ='Europe/Berlin'
$ date
Tue Apr 10 08:51:03 CEST 2018
export TZ='Pacific/Efate'
$ date
Tue Apr 10 18:28:33 +11 2018
Direkt verwenden TZ
kann Ihnen viele Systemaufrufe ersparen Da häufig verwendete datums- und zeitbezogene Funktionen immer dann auf das Dateisystem zugreifen müssen, wenn ein Programm nach dem aktuellen Datum fragt. Es ist eine Mikrooptimierung, aber ganz einfach.
TZ
Erstellt in deiner Profildatei ein Symlink? Das klingt nach meiner Erfahrung überhaupt nicht wahr. Vielleicht meinten Sie "Stellen Sie auch sicher, dass Sie den Symlink erstellen ..."?
$TZ
Variable wird von gelesen glibc
Funktionen: gnu.org/software/libc/manual/html_node/TZ-Variable.html
echo "TZ=Etc/UTC" >> /etc/environment
? du fehlst TZ=
Teil ... (falls jemand noch alte Debian-Versionen ausführt). Auch nicht interaktives Material wie Daemons wird weiterhin verwendet /etc/localtime
Version anstelle von einem Satz in TZ
...