Where Is the Linux Time Zone Configured?
Linux reads system time zone from a localtime symlink plus distro files, managed through timedatectl.
Last updated
System time zone resolution starts at one symlink. Localtime points into the zoneinfo database at the region's file, read by every time call on the box.
Debian keeps a text copy in timezone files while systemd tracks state in timedatectl. Containers and dual boots complicate the picture with virtualized and competing clocks. Timedatectl status shows the whole story in one screen.
Where Linux stores this, by platform
/etc/localtime
Symlink into zoneinfo defines the zone. Change with timedatectl set-timezone rather than relinking by hand.
Frequently asked questions
How do I change time zone properly?
Run timedatectl set-timezone with the region city name. That updates the symlink and notifies running services. Hand editing symlinks works but skips the notification step.
Why do dual boot clocks disagree?
Containers inherit the host clock with virtualized zones possible per container. Dual boot machines fight over hardware clock standards instead. Check RTC mode when Windows and Linux disagree by hours.
Notice an outdated path? Let us know.