How to Set or Change the Time Zone in Linux

By 

Updated on

4 min read

Set or Change Time Zone in Linux

A time zone is a geographic region that has the same standard time. Typically the time zone is set during the installation of the operating system, but it can be easily changed later.

Using the correct time zone is essential for many system tasks and processes. For example, the cron daemon uses the system’s time zone for executing cron jobs. The time zone is also used for log timestamps. If you rely on scheduled tasks, see our guide on cron jobs .

This tutorial covers the steps necessary to set or change the time zone in Linux.

Quick Reference

For a printable quick reference, see the timedatectl cheatsheet .

TaskCommand
Show current time zonetimedatectl
List all time zonestimedatectl list-timezones
Set time zonesudo timedatectl set-timezone America/New_York
Reset to UTCsudo timedatectl set-timezone Etc/UTC
Enable NTP syncsudo timedatectl set-ntp true
Set via symlinksudo ln -sf /usr/share/zoneinfo/Zone/City /etc/localtime

Most modern Linux distributions use systemd, which provides the timedatectl utility. If your system does not have timedatectl, use the symlink method shown later in the article.

Checking the Current Time Zone

timedatectl is a command-line utility that allows you to view and change the system’s time and date. It is available on all modern systemd-based Linux systems.

To view the current time zone, invoke the timedatectl command without any options or arguments:

Terminal
timedatectl
output
                      Local time: Mon 2026-01-19 10:30:44 UTC
                  Universal time: Mon 2026-01-19 10:30:44 UTC
                        RTC time: Mon 2026-01-19 10:30:44
                       Time zone: Etc/UTC (UTC, +0000)
       System clock synchronized: yes
systemd-timesyncd.service active: yes
                 RTC in local TZ: no

The output above shows that the system’s time zone is set to UTC.

The system time zone is configured by symlinking the /etc/localtime file to a binary time zone’s identifier in the /usr/share/zoneinfo directory.

Another way to check the time zone is to view the path the symlink points to using the ls command:

Terminal
ls -l /etc/localtime
output
lrwxrwxrwx 1 root root 27 Dec  3 16:29 /etc/localtime -> /usr/share/zoneinfo/Etc/UTC

On Debian and Ubuntu systems, the /etc/timezone file contains the current time zone name:

Terminal
cat /etc/timezone

The RTC in local TZ line shows whether the hardware clock is stored in local time. On Linux servers, this is typically set to no (UTC).

Changing the Time Zone in Linux

Before changing the time zone, you will need to find out the long name of the time zone you want to use. The time zone naming convention usually uses a “Region/City” format.

To view all available time zones, use the timedatectl command or list the files in the /usr/share/zoneinfo directory:

Terminal
timedatectl list-timezones
output
...
America/Montserrat
America/Nassau
America/New_York
America/Nipigon
America/Nome
America/Noronha
...

To find a specific zone, you can filter the list:

Terminal
timedatectl list-timezones | grep -i "Europe/Sofia"

If you want an interactive prompt, run tzselect and then use the output with timedatectl.

Once you identify which time zone is accurate to your location, run the following command as root or sudo user:

txt
sudo timedatectl set-timezone Region/City

For example, to change the system’s time zone to America/New_York you would type:

Terminal
sudo timedatectl set-timezone America/New_York

To reset the system to UTC:

Terminal
sudo timedatectl set-timezone Etc/UTC

To verify the change, invoke the timedatectl command again:

Terminal
timedatectl
output
                      Local time: Mon 2026-01-19 05:55:09 EST
                  Universal time: Mon 2026-01-19 10:55:09 UTC
                        RTC time: Mon 2026-01-19 10:55:09
                       Time zone: America/New_York (EST, -0500)
       System clock synchronized: yes
systemd-timesyncd.service active: yes
                 RTC in local TZ: no

Run timedatectl again to confirm the change took effect.

Syncing the System Clock (NTP)

If the system clock is not synchronized, enable NTP with:

Terminal
sudo timedatectl set-ntp true

Then verify with:

Terminal
timedatectl

On many distributions, systemd-timesyncd is used by default, while others use chronyd. The command above works either way.

Debian and Ubuntu Alternative: tzdata

On Debian and Ubuntu systems, you can also use the tzdata package to change the time zone:

Terminal
sudo dpkg-reconfigure tzdata

If you are running an older Linux distribution and the timedatectl utility is not present on your system, you can change the time zone by symlinking /etc/localtime to the time zone in the /usr/share/zoneinfo directory.

Remove the current symlink or file. Be careful with this step because it replaces the current time zone configuration:

Terminal
sudo rm /etc/localtime

Identify the time zone you want to configure and create a symlink :

Terminal
sudo ln -s /usr/share/zoneinfo/America/New_York /etc/localtime

Verify it either by listing the /etc/localtime file or invoking the date command:

Terminal
date

The output includes the time zone, in this example that is “EST”.

output
Tue Dec  3 14:10:54 EST 2019

Conclusion

To change the time zone in Linux, use sudo timedatectl set-timezone followed by a “Region/City” name from timedatectl list-timezones. On older systems without systemd, use the symlink method shown above.

Linuxize Weekly Newsletter

A quick weekly roundup of new tutorials, news, and tips.

About the authors

Dejan Panovski

Dejan Panovski

Dejan Panovski is the founder of Linuxize, an RHCSA-certified Linux system administrator and DevOps engineer based in Skopje, Macedonia. Author of 800+ Linux tutorials with 20+ years of experience turning complex Linux tasks into clear, reliable guides.

View author page