timedatectl and NTP Explained

timedatectl and NTP Explained

An inaccurate system clock causes problems in places that are not obvious until something breaks: TLS certificates rejected as expired, logs across servers that cannot be correlated, authentication schemes that fail outright. timedatectl and NTP are how Linux manages and maintains accurate time, mostly without you needing to think about it once configured correctly.

Checking current time and sync status

timedatectl status
               Local time: Sat 2026-08-08 14:32:07 UTC
           Universal time: Sat 2026-08-08 14:32:07 UTC
                 RTC time: Sat 2026-08-08 14:32:07
                Time zone: UTC (UTC, +0000)
System clock synchronized: yes
              NTP service: active
          RTC in local TZ: no

System clock synchronized: yes and NTP service: active confirm the clock is both correct and actively being kept that way, rather than just showing a value that happened to be correct at boot and has been drifting since.

Setting the timezone

timedatectl list-timezones

This lists every valid timezone identifier, in Area/City format (such as America/New_York, Europe/London, or Asia/Tokyo). Once you know the correct identifier:

sudo timedatectl set-timezone America/New_York

This takes effect immediately, system-wide, with no reboot required.

Setting time manually

sudo timedatectl set-time '2026-08-08 14:35:00'

This only works when NTP synchronization is disabled, since an active NTP client will simply correct the time right back on its next sync cycle. To disable NTP first:

sudo timedatectl set-ntp false
sudo timedatectl set-time '2026-08-08 14:35:00'
sudo timedatectl set-ntp true      # re-enable automatic synchronization afterward

Manually setting time is rarely the right long-term approach; it is a one-time correction that starts drifting again immediately afterward, whereas NTP corrects continuously.

What NTP actually does

Every computer’s internal clock drifts over time, typically by several seconds or more per day depending on the specific hardware, due to tiny inaccuracies in the physical oscillator that tracks time when the system is not actively correcting it. NTP (Network Time Protocol) continuously synchronizes the system clock against reference time servers over the network, correcting for that drift automatically and ongoing, rather than requiring a manual fix every so often.

This matters most obviously for servers: TLS certificate validation checks that the current time falls within a certificate’s validity window, and a clock that has drifted significantly can cause valid certificates to be rejected. Distributed logging and tracing across multiple servers only makes sense for correlating events if the servers broadly agree on what time it is. Some authentication schemes, including Kerberos and time-based one-time password codes used in two-factor authentication, fail outright once clock drift exceeds their tolerance window.

chrony vs ntpd

Most current major distributions, including Fedora, RHEL, and recent Ubuntu releases, use chrony as the default NTP implementation, having largely replaced the older ntpd. chrony generally synchronizes faster after a cold start or a period offline, and handles intermittent connectivity, common on laptops that sleep and reconnect, more gracefully than ntpd, which was originally designed around systems assumed to be online and stable continuously.

systemctl status chronyd     # check if chrony's service is running
chronyc tracking              # detailed current synchronization status
Reference ID    : C0248F01 (ntp1.example.com)
Stratum         : 2
System time     : 0.000023456 seconds fast of NTP time

chronyc tracking shows precisely how far off the local clock currently is from the reference time source, a more detailed picture than timedatectl status’s simple yes/no synchronization indicator.

Configuring NTP servers

Chrony’s configuration lives at /etc/chrony.conf (or /etc/chrony/chrony.conf on some distributions), listing which time servers to synchronize against:

pool pool.ntp.org iburst

Most distributions ship with a reasonable default pool already configured, and changing it is only necessary for specific requirements, such as an organization running its own internal time server for isolated or high-security networks that should not reach the public internet.

sudo systemctl restart chronyd

Restart the service after any configuration change for it to take effect.

Frequently Asked Questions

Why does system time accuracy actually matter?

Many things beyond just displaying the correct clock depend on accurate time: TLS certificate validation checks that the current time falls within a certificate’s validity window, and a system clock that is significantly wrong can cause valid certificates to be rejected as expired or not-yet-valid. Log timestamps across multiple servers only make sense for correlating events (like tracing a request across a distributed system) if all the servers agree closely on what time it is. Authentication protocols like Kerberos, and some two-factor authentication schemes based on time-based codes, fail outright if the clock has drifted too far from the correct time.

What is the difference between timedatectl and the older date command?

date reads and can set the current date and time directly, and is the older, more basic tool, without any awareness of NTP synchronization state or timezone management as a coherent system. timedatectl is the systemd tool for managing time-related settings more comprehensively: current time, timezone, whether NTP synchronization is active, and whether the hardware clock is set to local time or UTC, all in one place, and it also shows you the current synchronization status, which date has no way to report at all. For simply checking or manually setting the time, both work; for managing timezone and NTP configuration, timedatectl is the more complete and modern tool.

How do I change my system timezone?

First find the exact timezone name with timedatectl list-timezones, which lists every valid timezone identifier in the Area/City format the system expects (such as America/New_York or Europe/London), then set it with sudo timedatectl set-timezone Area/City, substituting the timezone you found. This updates the system-wide timezone immediately, affecting how times are displayed everywhere on the system, without requiring a reboot.

What is NTP and why do I need it if I can set the time manually?

NTP (Network Time Protocol) automatically and continuously synchronizes a system’s clock against reference time servers over the network, correcting for the natural drift every computer’s internal clock accumulates over time, typically several seconds or more per day depending on the hardware. Setting the time manually is a one-time fix that starts drifting again immediately afterward, whereas NTP keeps correcting continuously and automatically in the background, which is essential for servers, since even small amounts of clock drift can cause the kinds of certificate, logging, and authentication problems that depend on accurate time.

How do I check if NTP synchronization is actually working?

Run timedatectl status and look for the “System clock synchronized” and “NTP service” lines in the output; both should show “yes” or “active” if synchronization is functioning correctly. For more detail specifically about the chrony service, if that is what your distribution uses for NTP (common on current Fedora, RHEL, and many other modern distributions), chronyc tracking shows the current offset from the reference time source and other synchronization statistics, giving a much more precise picture of exactly how accurate the clock currently is, not just whether synchronization is nominally enabled.

What is the difference between chrony and ntpd?

Both are NTP client/server implementations that keep a system clock synchronized, but chrony is the more modern implementation and has become the default on most current major distributions, including Fedora, RHEL, and recent Ubuntu releases. chrony generally synchronizes faster after a cold start or after a period offline, and handles intermittent network connections (common on laptops that sleep and wake, or systems that are not always online) more gracefully than the older ntpd, which is part of why it has become the more common default choice on current systems even though both accomplish the same underlying goal.