- How to Set Date, Time and Timezone in Linux
- Set Linux date
- Set Linux time
- Set Linux date and time
- Set Linux timezone
- Backup old timezone info if needed
- Find out the appropriate timezone from /etc/localtime and create a symbolic link to it
- Verify the timezone is changed
- Some related utilities
- Update the current system time by rdate
- Set the hardware clock
- Fedora/RHEL/CentOS have a date/time setting tool
- How to Check Timezone in Linux
- Related Posts
- 15 thoughts on “How to Check Timezone in Linux”
How to Set Date, Time and Timezone in Linux
How to set date, time and timezone on Linux/Unix box will be introduced in this post.
Unix time, or POSIX time which is a system for describing points in time is the number of seconds elapsed since midnight UTC on the morning of January 1, 1970, not counting leap seconds.
The number of seconds elapsed can be got by this command on Linux/Unix systems:
Set Linux date
Linux date can be set using following syntax:
yyyy is year, mm is month and dd is day.
For example, we can set the date to June 22, 2010 by:
Set Linux time
Linux time can be set using following syntax:
hh is hour, mm is minite and ss is second.
For example, we can set the time to 11:28 by:
Set Linux date and time
The date and time can be set by date command at the same time by:
The first mm means month while the second mm means minite.
For example, we can set the date and time to 11:28 on June 22, 2010 by:
Another way to set new date and time is using the following syntax:
The method to set the date and time above is:
# date -s "22 JUN 2010 11:28:00"
# date --set="22 JUN 2010 11:28:00"
Set Linux timezone
The configuration file for timezone is usally /etc/localtime which is often a symlink to the file localtime or to the correct time zone file in the system. The time zone directory is /usr/share/zoneinfo where you can find a list of time zone regions. In some distro such as Fedora/RHEL/Cent OS, the zone files use /usr/share/zoneinfo/REGION/CITY like format.
The method for setting Linux timezone:
Backup old timezone info if needed
# mv /etc/localtime /etc/localtime.bak
Find out the appropriate timezone from /etc/localtime and create a symbolic link to it
For example we want to set the time zone to Hong Kong time:
# ln -sf /usr/share/zoneinfo/Asia/Hong_Kong /etc/localtime
Verify the timezone is changed
You may get a output like this:
$ date Tue Jun 22 12:33:10 HKT 2010
Some related utilities
Here is some related Linux time/date related utilities.
Update the current system time by rdate
For a list of available time servers, please check NIST Internet Time Servers.
Set the hardware clock
Fedora/RHEL/CentOS have a date/time setting tool
You can use the GUI tool on Red Hat’s distros:
and then select the timezone entry.
How to Check Timezone in Linux
In this short article, we will walk newbies through the various simple ways of checking system timezone in Linux. Time management on a Linux machine especially a production server is always an important aspect of system administration.
There are a number of time management utilities available on Linux such as date and timedatectl commands to get the current timezone of system and synchronize with a remote NTP server to enable an automatic and more accurate system time handling.
Well, let us dive into the different ways of finding out our Linux system timezone.
1. We will start by using the traditional date command to find out present timezone as follows:
Alternatively, type the command below, where %Z format prints the alphabetic timezone and %z prints the numeric timezone:
Note: There are many formats in the date man page that you can make use of, to alter the output of the date command:
2. Next, you can likewise use timedatectl, when you run it without any options, the command displays an overview of the system including the timezone like so:
More so, try to employ a pipeline and grep command to only filter the timezone as below:
$ timedatectl | grep “Time zone”
3. In addition, users of Debian and its derivatives can display the content of the file /etc/timezone using cat utility to check your timezone:
Important: For REHL/CentOS 7 and Fedora 25-22 users, the file /etc/localtime is a symbolic link to the timezone file under the directory /usr/share/zoneinfo/.
However, you can use date or timedatectl command to display the current time and timezone as well.
To change the timezone, create the symbolic link /etc/localtime to the appropriate timezone under /usr/share/zoneinfo/:
$ sudo ln -sf /usr/share/zoneinfo/zoneinfo /etc/localtime
The flag -s enables creation of a symbolic link, otherwise a hard link is created by default and -f removes an existing destination file, which in this case is /etc/localtime.
For example, to change the timezone to Africa/Nairobi, issue the command below:
$ sudo ln -sf /usr/share/zoneinfo/Africa/Nairobi /etc/localtime
That’s all! Do not forget to share you thoughts about the article by means of the feedback form below. Importantly, you should look through this time management guide for Linux to get more insight into handling time on your system, it has simple and easy-to-follow examples.
Lastly, always remember to stay tunned to Tecmint for the latest and interesting Linux stuff.
Aaron Kili is a Linux and F.O.S.S enthusiast, an upcoming Linux SysAdmin, web developer, and currently a content creator for TecMint who loves working with computers and strongly believes in sharing knowledge.
Each tutorial at TecMint is created by a team of experienced Linux system administrators so that it meets our high-quality standards.
Related Posts
15 thoughts on “How to Check Timezone in Linux”
Any suggestion where should I check further? All settings seem correct? It looks like there is an extra character at the end of America/Chicago. ERROR:
tzone_read_system: no match found for America/Chicago^? Here are my current settings
[[email protected] etc]# timedatectl Local time: Thu 2020-04-23 11:28:51 CDT Universal time: Thu 2020-04-23 16:28:51 UTC RTC time: Thu 2020-04-23 16:28:51 Time zone: America/Chicago (CDT, -0500) NTP enabled: no NTP synchronized: yes RTC in local TZ: no DST active: yes Last DST change: DST began at Sun 2020-03-08 01:59:59 CST Sun 2020-03-08 03:00:00 CDT Next DST change: DST ends (the clock jumps one hour backwards) at Sun 2020-11-01 01:59:59 CDT Sun 2020-11-01 01:00:00 CST [[email protected] etc]# [[email protected] etc]# ls -ltr /etc/localtime lrwxrwxrwx. 1 root root 37 Mar 26 12:20 /etc/localtime -> ../usr/share/zoneinfo/America/Chicago [[email protected] etc]# [[email protected] etc]# timedatectl | grep local RTC in local TZ: no [[email protected] etc]# [[email protected] etc]# timedatectl list-timezones | grep Chicago America/Chicago [[email protected] etc]# [[email protected] etc]# date Thu Apr 23 11:34:36 CDT 2020 [[email protected] etc]#
CentOS Linux release 7.7.1908 (Core). We just fixed the issue by “rerunning” the timezone. The log showed bad characters at the end, America/Chicago^? (^?) . We ran tzselect and then chose options 2, 49, 11 for Chicago. Gracefully rebooted the server “shutdown -r now” Thank you, Aaron, for your reply. Reply
@Ketan Great! Many thanks for sharing the solution. This will be of benefit to readers in the future. Reply
The formatting on your «%Z %z» example is a bit off. When your text is displayed, the usual, plain double quotes («) are replaced with “pretty” ones (”) . When I pasted your example into my terminal, I only received errors. You should format your example as:
(Here’s hoping that when I post this comment, the website doesn’t replace my simple quotes with pretty ones!) Reply
Yes, my simple quotes were replaced with pretty ones. That’s not good for displaying things on a technical website. You should see about disabling that feature. Reply
On Centos 7 there’s no “clock” under /etc/sysconfig. And neither is there a /etc/timezone, which, from what you’re saying, should exist on most or all linux distributions. Reply
@lethargo Yap, you can use /etc/localtime instead of /etc/timezone. Thanks for mentioning that. Reply
Indeed, but /etc/localtime is not plain text, it is a binary file. To be more specific, it is a symbolic link to a binary file found in /usr/share/zoneinfo. So you couldn’t simply grep it in Centos 🙂 You simply create a symbolic link to whatever timezone you want and then you can use date or timedatectl to see the current clock. Reply
@lethargos Once again, many thanks for the vital insight into checking and managing timezone on RHEL/CentOS 7, this will be very helpful to users out there. Reply
You’re welcome, but shouldn’t you update the article accordingly, so that other users actually know? There’s a higher chance that they’ll read the article than the comments.
@lethargos As you usefully suggested, we have updated the article to include the correct way of setting and checking timezone in REHL 7/CentOS 7/Fedora 25-22 systems. Many thanks for always following us and offering constructive thoughts.
Hello, How can I change the timezone and how can i set the time period of 12 hrs instead of 24hrs? Reply