Zum Inhalt springen

Uhrzeit

Linux-Systeme verwalten zwei Uhren: die Hardware-Uhr (RTC — Real Time Clock, läuft im BIOS/UEFI auch ohne Strom) und die System-Uhr (im Kernel, wird beim Booten aus der Hardware-Uhr gesetzt).

Hardware-Uhr (RTC)
│ beim Booten einlesen
System-Uhr (Kernel)
│ NTP-Synchronisation (laufend)
korrekte Zeit

Die Zeitzone wird über einen Symlink gesteuert:

Terminal-Fenster
ls -la /etc/localtime
# /etc/localtime -> /usr/share/zoneinfo/Europe/Berlin

Verfügbare Zeitzonen liegen in /usr/share/zoneinfo/.

Terminal-Fenster
# Mit timedatectl (empfohlen)
timedatectl list-timezones | grep Europe
sudo timedatectl set-timezone Europe/Berlin
# Manuell (Symlink setzen)
sudo ln -sf /usr/share/zoneinfo/Europe/Berlin /etc/localtime

timedatectl ist das systemd-Werkzeug für Uhrzeit, Zeitzone und NTP:

Terminal-Fenster
timedatectl # aktuellen Status anzeigen

Beispielausgabe:

Local time: So 2026-03-22 14:30:00 CET
Universal time: So 2026-03-22 13:30:00 UTC
RTC time: So 2026-03-22 13:30:00
Time zone: Europe/Berlin (CET, +0100)
System clock synchronized: yes
NTP service: active
RTC in local TZ: no
Terminal-Fenster
# Uhrzeit manuell setzen (NTP muss deaktiviert sein)
sudo timedatectl set-ntp false
sudo timedatectl set-time "2026-03-22 14:30:00"
# NTP wieder aktivieren
sudo timedatectl set-ntp true
# RTC-Modus umschalten (UTC empfohlen)
sudo timedatectl set-local-rtc 0 # RTC in UTC speichern (Standard)
sudo timedatectl set-local-rtc 1 # RTC in Lokalzeit (nur für Windows-Dual-Boot)

hwclock liest und schreibt die Hardware-Uhr direkt:

Terminal-Fenster
hwclock # Hardware-Uhr lesen (Lokalzeit)
hwclock --utc # Hardware-Uhr lesen (UTC interpretieren)
hwclock --show --verbose # Details anzeigen
# Synchronisation
sudo hwclock --systohc # System-Uhr → Hardware-Uhr schreiben
sudo hwclock --hctosys # Hardware-Uhr → System-Uhr lesen

NTP (Network Time Protocol) synchronisiert die System-Uhr über das Netzwerk mit Zeitservern.

Auf den meisten modernen Distributionen ist systemd-timesyncd vorinstalliert — ein einfacher NTP-Client:

Terminal-Fenster
# Status prüfen
systemctl status systemd-timesyncd
timedatectl show-timesync # Synchronisations-Details
# Konfiguration: /etc/systemd/timesyncd.conf
# [Time]
# NTP=0.de.pool.ntp.org 1.de.pool.ntp.org
# FallbackNTP=ntp.ubuntu.com

Nach Änderung an timesyncd.conf:

Terminal-Fenster
sudo systemctl restart systemd-timesyncd

Für Server oder Systeme, die selbst als NTP-Server fungieren sollen, ist chrony besser geeignet:

Terminal-Fenster
# Installation
sudo apt install chrony # Debian/Ubuntu
sudo dnf install chrony # RHEL/Fedora
# Status
chronyc tracking # Synchronisations-Status
chronyc sources -v # verwendete Zeitquellen

Konfiguration in /etc/chrony.conf:

pool 0.de.pool.ntp.org iburst
pool 1.de.pool.ntp.org iburst
driftfile /var/lib/chrony/drift
makestep 1.0 3
rtcsync

Das klassische Werkzeug zur Anzeige und Ausgabeformatierung:

Terminal-Fenster
date # aktuelle Zeit (Lokalzeit)
date -u # UTC-Zeit
date +"%Y-%m-%d %H:%M:%S" # formatierte Ausgabe
date +%s # Unix-Timestamp (Sekunden seit 1970-01-01)
# Vergangene/zukünftige Zeiten berechnen
date -d "yesterday"
date -d "next monday"
date -d "@1711108800" # Unix-Timestamp → lesbares Datum