Accurate timezone configuration on Linux keeps log timestamps, scheduled jobs, and monitoring data aligned with local time. Consistent clocks across hosts also simplify incident analysis in environments with multiple servers or containers.

On systemd-based distributions, timedatectl manages system time and timezone settings. The utility updates the /etc/localtime symlink, which points into the /usr/share/zoneinfo database, and prints the current state in a human-friendly summary.

Changing the timezone adjusts how local time is presented without altering the underlying notion of UTC when configured correctly. Before modifying production systems, maintenance windows and monitoring expectations should be considered, especially when cron jobs, log rotation, or backups depend on local time.

Steps to change system timezone in Linux:

  1. Open a terminal or console session with access to sudo privileges.
  2. Display the current time and timezone configuration using timedatectl.
    $ timedatectl
                   Local time: Mon 2026-01-12 22:33:43 UTC
               Universal time: Mon 2026-01-12 22:33:43 UTC
                     RTC time: n/a
                    Time zone: Etc/UTC (UTC, +0000)
    System clock synchronized: yes
                  NTP service: active
              RTC in local TZ: no

    No error output indicates a valid configuration.

  3. List available timezones to find the correct region and city.
    $ timedatectl list-timezones | head -n 8
    Africa/Abidjan
    Africa/Accra
    Africa/Addis_Ababa
    Africa/Algiers
    Africa/Asmara
    Africa/Bamako
    Africa/Bangui
    Africa/Banjul

    The list is generated from the /usr/share/zoneinfo database.

  4. Narrow the list to entries matching a specific location using grep.
    $ timedatectl list-timezones | grep -i tokyo
    Asia/Tokyo
  5. Apply the new timezone with timedatectl set-timezone and the selected region string.
    $ sudo timedatectl set-timezone Asia/Tokyo

    Choosing an incorrect timezone shifts local log timestamps and cron executions, which can complicate audits and incident timelines.

  6. Confirm that the new timezone is active and that local time appears correct.
    $ timedatectl
                   Local time: Tue 2026-01-13 07:33:46 JST
               Universal time: Mon 2026-01-12 22:33:46 UTC
                     RTC time: n/a
                    Time zone: Asia/Tokyo (JST, +0900)
    System clock synchronized: yes
                  NTP service: active
              RTC in local TZ: no

    The same result can be achieved manually by updating /etc/localtime to point at the correct file under /usr/share/zoneinfo.

  7. Verify the adjusted local time with a simple clock check.
    $ date
    Tue Jan 13 07:33:46 JST 2026