On CentOS, the system’s timezone is set during the install, but it can be easily changed at a later time. 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.
To set up the time and date on CentOS 7 we are going to use the timedatectl command. It is an utility which is distributed as part of the systemd system and service manager. The timedatectl command has the following features:
- Review the current date and time
- Change the date and time
- Set up the system time zone
- Enable an automatic synchronization of the system clock with a remote server
This tutorial explains how to set or change the timezone on CentOS 7.x.
You’ll need to be logged in as a user with sudo privileges in order to change the system’s timezone.
Checking the Current Timezone
To display the current time and date on your system, use the
timedatectl command from the commandline as follows:
As the output below shows, the system’s timezone is set to UTC:
$ timedatectl status Local time: Fri 2019-04-05 07:38:35 EDT Universal time: Fri 2019-04-05 11:38:35 UTC RTC time: Fri 2019-04-05 11:38:33 Time zone: America/New_York (EDT, -0400) NTP enabled: yes NTP synchronized: yes RTC in local TZ: no DST active: yes Last DST change: DST began at Sun 2019-03-10 01:59:59 EST Sun 2019-03-10 03:00:00 EDT Next DST change: DST ends (the clock jumps one hour backwards) at Sun 2019-11-03 01:59:59 EDT Sun 2019-11-03 01:00:00 EST
The system timezone is configured by symlinking
/etc/localtime to a binary timezone identifier in the
/usr/share/zoneinfo directory. So, another option to check the timezone is to show the path the symlink points to using the
ls -l /etc/localtime
$ ls -l /etc/localtime lrwxrwxrwx. 1 root root 38 Mar 13 17:33 /etc/localtime -> ../usr/share/zoneinfo/America/New_York
Changing Timezone in CentOS
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 view all available timezones, run the command below:
$ timedatectl list-timezones .... Europe/Amsterdam Europe/Andorra Europe/Astrakhan Europe/Athens Europe/Belgrade Europe/Berlin Europe/Bratislava Europe/Brussels Europe/Bucharest Europe/Budapest Europe/Busingen Europe/Chisinau Europe/Copenhagen Europe/Dublin ....
timedatectl list-timezones | egrep -o "Asia/B.*" timedatectl list-timezones | egrep -o "Europe/B.*" timedatectl list-timezones | egrep -o "America/N.*"
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/Belgrade:
sudo timedatectl set-timezone Europe/Belgrade
Run the timedatectl command to verify the changes:
In this guide, we have shown you change your CentOS system’s timezone. Feel free to leave a comment if you have any questions.