Question: When I installed the Linux OS, I forgot to set the proper timezone. How do I change the timezone on my Linux distribution. I use CentOS (Red Hat Linux). But, can you please explain me how to do this on all Linux distributions with some clear examples.
Answer: Use one of the following methods to change the timezone on your Linux system. One of these methods should work for you depending on the Linux distribution you are using.
Method 1: Change TimeZone Using /etc/localtime File
For this example, assume that your current timezone is UTC as shown below. You would like to change this to Pacific Time.
# date Mon Sep 17 22:59:24 UTC 2010
On some distributions (for example, CentOS), the timezone is controlled by /etc/localtime file.
Delete the current localtime file under /etc/ directory
# cd /etc # rm localtime
All US timezones are located under under the /usr/share/zoneinfo/US directory as shown below.
# ls /usr/share/zoneinfo/US/ Alaska Arizona Eastern Hawaii Michigan Pacific Aleutian Central East-Indiana Indiana-Starke Mountain Samoa
Note: For other country timezones, browse the /usr/share/zoneinfo directory
Link the Pacific file from the above US directory to the /etc/localtime directory as shown below.
# cd /etc # ln -s /usr/share/zoneinfo/US/Pacific localtime
Now the timezone on your Linux system is changed to US Pacific time as shown below.
# date Mon Sep 17 23:10:14 PDT 2010
Method 2: Change TimeZone Using /etc/timezone File
On some distributions (for example, Ubuntu), the timezone is controlled by /etc/timezone file.
For example, your current timezone might be US Eastern time (New York) as shown below.
# cat /etc/timezone America/New_York
To change this to US Pacific time (Los Angeles), modify the /etc/timezone file as shown below.
# vim /etc/timezone America/Los_Angeles
Also, set the timezone from the command line using the TZ variable.
# export TZ=America/Los_Angeles
Comments on this entry are closed.
This is very useful information.
Thanks.
Great stuff. Really handy!
Method 1 is bad. Sometimes after updating system this settings reset.
RHEL/CentOS actually copies files from /usr/share/zoneinfo to /etc/localtime based on /etc/sysconfig/clock settings. Symlinks will be blown away everytime after tzdata update
archlinux has one file to configure many cool stuff (timezone, deamons etc) – /etc/rc.conf
I think there is similar file in slackware and BSD.
Great article .
Regards,
Ajay Rai
No work on SL6 (another RHEL clone) either. Sorry!
I tried all these but its not working. These steps works fine on my machine but wondering why its not working on the production machine where it should work.
Any idea or more methods of changing the timezone?
@chandan :
What exactly is the issue you are facing ?
It works, thanks a lot!
thanks a lot it works
Try tzselect command….
I found this on another website, but this method worked perfectly:
Open the terminal. This method will open an ASCII menu that will allow you to choose your timezone. Enter the following command based on the Linux distribution you are using:
Ubuntu: dpkg-reconfigure tzdata
Redhat: redhat-config-date
CentOS/Fedora: system-config-date
FreeBSD/Slackware: tzselect
Regards!
Its really working i applied in my env just before posting comment
thanks.. very usefull
The work around working but timezone reverts back once server took reboot.
Any work around to save the changes done?
BR
FArrukh
thanks so much, really helpful.
Using ‘tzselect’ does not seem to modify the /etc/timezone file.
Using ‘dpkg-reconfigure tzdata’ only shows the current content of the /etc/timezone file with no option to modify it’s content.
Thank you, this was helpful!