Using the correct timezone is important 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.
The system’s timezone is set during the installation, but it can be easily changed at a later time. This tutorial shows how to set or change the timezone on Debian 9.
The user you are logged in as must have sudo privileges to be able to change the system’s timezone.
Checking the Current Timezone
In Debian and other modern Linux distributions, the
timedatectl command allows you to display and set the current system’s time and timezone.
As shown on the output below, the system’s timezone is set to “America/Chicago”:
Local time: Mon 2019-03-11 16:46:45 CDT Universal time: Mon 2019-03-11 21:46:45 UTC RTC time: Mon 2019-03-11 21:46:45 Time zone: America/Chicago (CDT, -0500) Network time on: yes NTP synchronized: no 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. Other option to check the timezone is to show the path the symlink points to using the ls command:
ls -l /etc/localtime
lrwxrwxrwx 1 root root 37 Jan 23 03:19 /etc/localtime -> ../usr/share/zoneinfo/America/Chicago
Changing Timezone in Debian
Before changing the timezone, you’ll need to find out the long name for the timezone you want to use. The timezone naming convention usually uses a “Region/City” format.
To list all available time zones, you can either list the files in the
/usr/share/zoneinfo directory or use the
... Europe/Lisbon Europe/Ljubljana Europe/London Europe/Luxembourg Europe/Madrid Europe/Malta ...
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 example, to change the system’s timezone to
Europe/Ljubljana you would run:
sudo timedatectl set-timezone Europe/Ljubljana
Verify the change by issuing the
Local time: Mon 2019-03-11 22:51:27 CET Universal time: Mon 2019-03-11 21:51:27 UTC RTC time: Mon 2019-03-11 21:51:26 Time zone: Europe/Ljubljana (CET, +0100) Network time on: yes NTP synchronized: yes RTC in local TZ: no
Changing the Timezone by Creating a Symlink
If you are running an older version of Debian and the
timedatectl command is not present on your system you can change the timezone by symlinking
/etc/localtime to the timezone in the
Delete the current
/etc/localtime file or symlink:
sudo rm -f /etc/localtime
Identify the timezone you want to configure and create a symlink:
sudo ln -s /usr/share/zoneinfo/Europe/Ljubljana /etc/localtime
You can confirm the change either by listing the
/etc/localtime file or issuing the
Mon Mar 11 22:55:04 CET 2019
In this guide, you learned how to change your Debian system’s timezone. Feel free to leave a comment if you have any questions.