Die Zeitzone bestimmt, wie Uhrzeit und Datum in deinem Linux-System dargestellt und interpretiert werden. Sie berücksichtigt geografische Lage, Sommerzeit und lokale Zeitstandards. Wichtig ist die Unterscheidung: Die Systemuhr liefert die Zeitbasis, die eingestellte Zeitzone legt fest, wie diese Zeit lokal angezeigt wird.
Logs und Timestamps: Korrekte Zeitstempel in Systemlogs und Anwendungen
Geplante Aufgaben: Cron-Jobs und Timer funktionieren zur erwarteten Zeit
Synchronisation: Wichtig für Datenbanken und verteilte Systeme
Compliance: Rechtliche Anforderungen für Zeitstempel
Benutzererfahrung: Korrekte Zeitanzeige für lokale Nutzer
Wie prüft man die aktuelle Zeitzone?
Mit timedatectl (systemd-Systeme)
1
timedatectl
Beispielausgabe:
1 2 3 4 5 6 7
Local time: So 2025-08-17 14:35:42 CEST Universal time: So 2025-08-17 12:35:42 UTC RTC time: So 2025-08-17 12:35:42 Time zone: Europe/Berlin (CEST, +0200) System clock synchronized: yes NTP service: active RTC inlocal TZ: no
Alternative Methoden
1 2 3 4 5 6 7 8
# Eindeutige Zeitzone anzeigen timedatectl show --property=Timezone --value
# Verweis auf die aktive Zone prüfen readlink -f /etc/localtime
# Zeitzonen-Abkürzung anzeigen date +%Z
Hinweis: Die Datei /etc/timezone gibt es vor allem auf Debian- und Ubuntu-basierten Systemen. Auf anderen Distributionen ist meist der Link /etc/localtime die verlässlichere Quelle.
Verfügbare Zeitzonen finden
Alle Zeitzonen auflisten
1
timedatectl list-timezones
Nach Region filtern
1 2 3 4 5 6 7 8 9 10 11
# Europa timedatectl list-timezones | grep Europe
# Amerika timedatectl list-timezones | grep America
# Asien timedatectl list-timezones | grep Asia
# Spezifische Stadt suchen timedatectl list-timezones | grep -i london
Die Änderung wirkt sofort. Ein Neustart ist in der Regel nicht erforderlich.
Beispiele für verschiedene Zeitzonen
1 2 3 4 5 6 7 8 9 10 11
# Deutschland sudo timedatectl set-timezone Europe/Berlin
# USA Ostküste sudo timedatectl set-timezone America/New_York
# Japan sudo timedatectl set-timezone Asia/Tokyo
# UTC (Server-Standard) sudo timedatectl set-timezone UTC
Alternative Methoden (ohne systemd oder distributionsspezifisch)
Debian und Ubuntu
1 2
# Interaktiven Dialog für tzdata öffnen sudo dpkg-reconfigure tzdata
Generisch über /etc/localtime
1 2 3 4 5
# Backup der aktuellen Konfiguration sudo cp /etc/localtime /etc/localtime.backup
# Neue Zeitzone verlinken sudo ln -sf /usr/share/zoneinfo/Europe/London /etc/localtime
Auf Debian und Ubuntu kann zusätzlich /etc/timezone gepflegt werden. Auf vielen anderen Distributionen existiert diese Datei nicht.
Umgebungsvariable (temporär)
1 2 3 4 5 6
# Nur für aktuelle Sitzung export TZ='Europe/London' date
# In Shell-Profil für dauerhaft echo'export TZ="Europe/London"' >> ~/.bashrc
Container und virtuelle Umgebungen
Docker Container
Wichtig: Die Umgebungsvariable TZ funktioniert nur zuverlässig, wenn die Zeitzonendaten im Image vorhanden sind, zum Beispiel durch das Paket tzdata.
1 2 3 4 5 6 7 8 9 10
# Bei Container-Start docker run -e TZ=Europe/Berlin ubuntu:latest date
# Volume für Zeitzone docker run -v /etc/localtime:/etc/localtime:ro ubuntu:latest date
# In Dockerfile (Debian/Ubuntu-basiert) RUN apt-get update && apt-get install -y tzdata && rm -rf /var/lib/apt/lists/* ENV TZ=Europe/Berlin RUN ln -snf /usr/share/zoneinfo/$TZ /etc/localtime && echo$TZ > /etc/timezone
Bei Alpine, Distroless oder anderen Minimal-Images unterscheiden sich Paketmanager und Pfade. Dort musst du die Zeitzonendaten passend zur Basis-Distribution einrichten.
# Zeit mit chrony sofort korrigieren sudo chronyc -a makestep
ntpdate gilt auf vielen aktuellen Distributionen als veraltet oder ist nicht mehr vorinstalliert.
Hardware Clock (RTC) konfigurieren
RTC-Einstellungen
1 2 3 4 5 6 7 8
# RTC auf UTC setzen (empfohlen für Linux) sudo timedatectl set-local-rtc false
# RTC auf lokale Zeit setzen (nur bei bewusstem Dual-Boot-Setup) sudo timedatectl set-local-rtc true
# RTC-Status prüfen hwclock --show
Für Dual-Boot mit Windows ist UTC in der RTC meist die sauberste Lösung, wenn beide Systeme entsprechend konfiguriert sind.
Häufige Probleme und Lösungen
Zeitzone wird nicht übernommen
1 2 3 4 5 6 7 8 9 10 11 12 13 14
# Aktuellen Status prüfen timedatectl status
# Eindeutige Zeitzone ausgeben timedatectl show --property=Timezone --value
# Ziel des Symlinks prüfen readlink -f /etc/localtime
# Prüfen, ob die gewünschte Zone vorhanden ist ls /usr/share/zoneinfo/Europe/Berlin
# Überprüfung date
Verschiedene Zeitzonen in Logs
1 2 3 4 5
# Logs mit spezifischer Zeitzone anzeigen TZ='UTC' journalctl --since today
# Zeitzone für bestimmte Anwendung TZ='America/New_York' ./myapp
Permission-Probleme
1 2 3 4 5 6
# Prüfen, ob Root-Rechte vorhanden sind sudo -v
# Relevante Dateien prüfen ls -la /etc/localtime ls -la /etc/timezone
Fehlt /etc/timezone, ist das nicht automatisch ein Fehler. Auf vielen Distributionen reicht /etc/localtime vollkommen aus.
Tipps
Verwende UTC für Server und Produktionssysteme
Dokumentiere Zeitzone-Änderungen für das Team
Teste Anwendungen nach Zeitzone-Änderungen
Richte bei Dual-Boot mit Windows beide Systeme möglichst konsistent auf UTC aus
Backup wichtiger Konfigurationsdateien vor Änderungen
Prüfe regelmäßig NTP-Synchronisation
Trenne gedanklich zwischen Zeitzone, Uhrzeit und NTP-Synchronisation
Fazit
Die Zeitzone lässt sich in Linux meist einfach über timedatectl verwalten. Für moderne systemd-basierte Systeme ist das die empfohlene Methode. Auf Systemen ohne systemd oder in speziellen Umgebungen wie Containern erfolgt die Konfiguration oft über /etc/localtime, distributionsspezifische Werkzeuge oder zusätzliche Pakete wie tzdata. Entscheidend ist, Zeitzone, Uhrzeit und NTP-Synchronisation sauber voneinander zu trennen.