devutils/ATFQ/book ATFQ git

Part I · How it works

10.3 Time zones, UTC and daylight saving

alsotimezonetime zonetime zonesutcdstdaylight savingdaylight saving timetztzdatalocaltime/etc/localtimeset timezonegmt

TL;DR

  • The kernel counts time in UTC. Time zones are applied when time is displayed, by the C library, from the rules in /etc/localtime.
  • Each process can use another zone: TZ=Asia/Tokyo date.
  • Store and compute in UTC; convert to local time only to show it.
timedatectl set-timezone Europe/Paris
TZ=America/New_York date
date -u                          # UTC

On your machine

alice@laptopexample
$ atfq 10.3
  Zone      Europe/Paris
  RTC       the hardware clock keeps UTC
  Source    tsc (also available: hpet, acpi_pm)
  Sync      systemd-timesyncd, synchronised
  Booted    2026-10-11 06:26 UTC

An example: Alice's laptop, one of the test machines. In your terminal, this block shows your own machine, read live.

Pitfalls

Deep dive 2 questions

What is in a zone file?

The zone's history: every change of offset and of daylight saving rules since records began, compiled from the IANA time zone database. That's why converting a date from 1975 in Europe/Paris gives the offset in use then, and why Europe/Paris and "UTC+1" aren't the same thing.

What's the difference between UTC and GMT?

GMT is a time zone (Britain in winter). UTC is the reference timescale, kept by atomic clocks, with leap seconds added so it stays close to the Earth's rotation (10.4). For everyday use they show the same time.

Commands
timedatectl date
Paths
/etc/localtime /usr/share/zoneinfo/
See also
10.4 Timestamps: Unix time, 2038 and leap seconds
10.1 Wall clock and monotonic clock: measuring time right