How To Set or Change Timezone on Ubuntu 20.04

Using the correct timezone is essential for many systems related tasks and processes. For example, the cron daemon uses the system’s timezone for executing cron jobs, and the timestamps in the log files are based on the same system’s timezone.

On Ubuntu, the system’s timezone is set during the install, but it can be easily changed at a later time.

This article describes how to set or change the timezone on Ubuntu 20.04 using the command line, or through the GUI.

Prerequisites

Only the root or user with sudo privileges can set or change the system’s timezone.

Checking the Current Timezone

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, including Ubuntu 20.04.

To print the current system’s timezone invoke the timedatectl without any arguments:

timedatectl

The output below shows that the system’s timezone is set to “UTC”:

 Local time: Wed 2020-05-06 19:33:20 UTC
           Universal time: Wed 2020-05-06 19:33:20 UTC
                 RTC time: Wed 2020-05-06 19:33:22    
                Time zone: UTC (UTC, +0000)           
System clock synchronized: yes                         
              NTP service: active                      
          RTC in local TZ: no 

The system timezone is configured by symlinking /etc/localtime to a binary timezone identifier in the /usr/share/zoneinfo directory. Another option to view the current system’s timezone is find the file to which the symlink points to:

ls -l /etc/localtime
lrwxrwxrwx 1 root root 27 Dec 10 12:59 /etc/localtime -> /usr/share/zoneinfo/Etc/UTC 

The system’s timezone in also written to the /etc/timezone file:

cat /etc/timezone
UTC 

Changing the Timezone Using the timedatectl Command

Before changing the timezone, you’ll need to find out the long name for the timezone you want to use. The timezones are using “Region/City” format.

To list all available time zones, you can either list the files in the /usr/share/zoneinfo directory or invoke the timedatectl command with the list-timezones option:

timedatectl list-timezones
...
America/Montevideo
America/Nassau
America/New_York
America/Nipigon
America/Nome
America/Noronha
... 

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

sudo timedatectl set-timezone your_time_zone

For instance, to change the system’s timezone to Europe/Kyiv :

sudo timedatectl set-timezone Europe/Kyiv 

Invoke the timedatectl command to verify the changes:

timedatectl
               Local time: Wed 2022-11-16 15:56:09 EET
           Universal time: Wed 2022-11-16 13:56:09 UTC
                 RTC time: Wed 2022-11-16 13:56:09    
                Time zone: Europe/Kyiv (EET, +0200)   
System clock synchronized: yes                        
              NTP service: active                     
          RTC in local TZ: no