Home Linux System AdministrationBasics How To Change The Timezone on Debian 10 Buster

How To Change The Timezone on Debian 10 Buster

by schkn

On Linux, it is essential to have some basics when it comes to changing the timezone.

The timezone is a parameter set at the installation stage and that determines the current date for your host.

Setting a correct timezone is crucial : your web and application servers may rely on this date for deserializing for example.

As a consequence, you want to set the timezone to an information that reflects the timezone you are currently located in.

On Debian 10, there are three ways to change the timezone :

  • By using the timedatectl command with the set-timezone option
  • By creating a symbolic link from your /etc/localtime to the correct timezone.
  • By using the TZ environment variable

Prerequisites

In order to change your timezone on Debian 10, you will need to have sudo privileges on your host.

Change the timezone using timedatectl

The quickest way to modify the timezone is to use the timedatectl command.

Showing your current timezone

To see the current timezone used on your host, run the following command

$ timedatectl
Print current timezone on Debian

Note that it is equivalent to run the command with the status option.

$ timedatectl status

As you can see, you are presented with the local time (the time in your timezone), the universal time, the RTC time but most importantly the time zone.

Currently, my timezone is set to America/New York.

In order to see all the timezones available on your distribution, run the following command

$ timedatectl list-timezones
List available timezones on Debian 10 Buster

If you already have an idea of the timezone you want to select, you can narrow down your results to pinpoint the exact matching timezone.

$ timedatectl list-timezones | grep Paris
Specific timezone in Debian

Setting a new timezone

In order to set the current timezone, use the set-timezone option with the timezone as an argument.

$ timedatectl set-timezone Europe/Paris

No need to restart any services, your timezone will be changed immediately.

To verify it, you can the timedatectl command again, or a simple date command.

$ timedatectl
$ date
Change timezone on Debian 10 Buster

Change the timezone by creating a symbolic link

The second method to change to timezone is to create a symbolic link from your /etc/localtime to predefined timezones available on your host.

Looking to understand more about hard and soft links on Linux, read the complete guide!

This is an old method, and you should be fine by simply running timedatectl. But in case you need to create a symbolic link, here is how you would do it.

By default, timezones are stored in the /usr/share/zoneinfo directory of your host.

Here is for example the content of the Europe folder

Changing timezone on Debian with a symbolic link

You will be able to change your timezone by pointing your localdate file to one of those files.

To do it, run the following command

$ sudo ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime

To verify that your changes were correctly applied, make sure to run the date command.

$ date 
Showing current date on Debian 10

Change the timezone using the TZ environment variable

First of all, in order to determine the timezone we are interested in, we are going to use the tzselect command.

The tzselect command is an interactive tool that guides the user towards the timezone syntax to use on its .profile file.

It means that the tzselect won’t modify the timezone, but it will provide you with the commands you have to write to modify it.

$ tzselect
Changing timezone on Debian 10 using the TZ environment variable

Select the timezone you are interested in by typing the number corresponding to the entry.

#? 7

From there, you will be presented with a list of countries. Choose the one you are interested in.

Tzselect utility contextual menu

If you agree with the information shown in the terminal, simply hit “1” and press Enter.

Changing timezone by modifying the TZ environment variable

As specified, append the following line to your .profile file.

echo "TZ='Europe/Paris'; export TZ" >> /home/<user>/.profile

Verify that your changes were correctly appended to your .profile file.

$ tail -n 1 /home/<user>/.profile
TZ='Europe/Paris'; export TZ

Log out from your account and log in again for your changes to be taken into account.

On the next login, verify that the TZ environment variable is correctly set

$ echo $TZ
Europe/Paris

$ date
Wed 18 Sep 2019 11:25:36 PM CEST

Awesome, you have successfully changed the timezone on your Debian 10 Buster instance.

Conclusion

Congratulations, you have learnt how you can easily change your timezone on Debian 10 Buster.

If you are interested in more tutorials related to system administration and server setup, make sure to read all the articles we have written on the subject.

You may also like

5 comments

How To Set and Unset Environment Variables on Linux – devconnected October 19, 2019 - 4:05 pm

[…] very popular example is when you are trying to set the timezone on your Linux […]

Reply
esparto February 15, 2020 - 12:28 pm

Clear and practical, thank you

Reply
Dmitro April 9, 2020 - 6:50 pm

Дякую

Reply
LaMooN April 26, 2020 - 3:08 am

Thank you. 😉

Reply
schkn April 27, 2020 - 7:46 pm

You’re welcome 🙂

Reply

Leave a Comment

This site uses Akismet to reduce spam. Learn how your comment data is processed.