How Change the Timezone in Linux

How Change the Time Zone in Linux

Linux is the world’s most widely used open-source operating system (OS). Because Linux is open-source, it means that the code is free and available to the public to view/use. Android, one of the most popular platforms on the planet, is powered by Linux. As such, Linux is used across the world in every time zone.

In this article, we’ll explain how time zones work in Linux, and how to change the time zone.

Time zones

A time zone is a region/area in which the same standard time is used. As trade, transport, and communication expanded, it became clear that a unified time-keeping system was needed. In 1884, GMT was born. In 1972, Coordinated Universal Time (UTC) replaced GMT as the world’s time standard. There are currently 37 different local times.

The importance of time zones in Linux

Having the correct time zone defined in your Linux data center servers is very important – and can even be the difference between your software working properly or not. If the time is not figured correctly, you may receive strange errors that are hard to identify and some apps or services may simply not work.

Checking the current time zone setting

In Linux “timedatectl” is the command-line utility that enables you to view and change the time and date in the system. This command is available on all systemd-based Linux systems. If you want to view the current time zone, you can invoke the “timedatectl” command without any arguments or options:

timedatectl

Local time: Sun 2020-11-01 16:17:42 UTC
Universal time: Sun 2020-11-01 16:17:42 UTC
RTC time: Sun 2020-11-01 16:17:43
Time zone: Etc/UTC (UTC, +0000)
System clock synchronized: yes
systemd-timesyncd.service active: yes
RTC in local TZ: no

The output shown above tells you that the system’s time zone is currently set to UTC.

Another way of checking is to view the path the symlink is pointing to, using the “ls” command:

ls -l /etc/localtime
lrwxrwxrwx 1 root root 27 Nov 1 06:28 /etc/localtime -> /usr/share/zoneinfo/Etc/UTC

How are time zones configured?

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.

Find your time zone

Prior to attempting to change the time zone, you need to find out the long name of the time zone that you want to use. You can view all the available time zones by using the “timedatectl” command or by listing the files in the /usr/share/zoneinfo directory. The naming convention for time zones usually uses a “Region/City” format such as America/New_York or America/Nassau.

Changing the Time Zone in Linux

There are two options when it comes to changing your time zone in Linux. We’ll go over each possibility below:

Change your time zone – Option 1

Once you have identified which time zone is relevant to your location, you should run the following command (as either root or sudo user):

sudo timedatectl set-timezone

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

sudo timedatectl set-timezone Europe/London

To verify the change you made, simply invoke the “timedatectl” command again:

timedatectl

Local time: Sun 2020-11-01 16:19:49 GMT
Universal time: Sun 2020-11-01 16:19:49 UTC
RTC time: Sun 2020-11-01 16:19:50
Time zone: Europe/London (GMT, +0000)
System clock synchronized: yes
systemd-timesyncd.service active: yes
RTC in local TZ: no

You have now successfully changed your system’s time zone.

Change your time zone – Option 2

If you are running an older version of Linux, there is a possibility that the “timedatectl” utility may not be available on your system.

If this is the case you can instead change the time zone by symlinking the /etc/localtime to the time zone that is in the /usr/share/zoneinfo directory.

Remove the current symlink or file:

sudo rm -rf /etc/localtime

Then you can identify the time zone that you want to use and create a symlink:

sudo ln -s /usr/share/zoneinfo/Europe/London /etc/localtime

You can then verify it either by invoking the “date” command:

date

Sun Nov 1 16:22:03 GMT 2020

The output will include the time zone as well as the date and time e.g. Tue Dec 3 14:10:54 EST 2019

SHARE:
nv-author-image

Stefan Durand

My name is Stefan, I'm the admin of LinuxScrew. I am a full-time Linux/Unix sysadmin, a hobby Python programmer, and a part-time blogger. I post useful guides, tips, and tutorials on common Linux and Programming issues. Feel free to reach out in the comment section.

Leave a Reply

Your email address will not be published. Required fields are marked *