There is some instance during the Linux installation that you did not bother to set the correct timezone for any reasons like sometimes you are just lazy to set it, you’re in a rush to finish what your boss want you to complete in that day, or you just don’t give a damn 🙂 Seriously, timezone is a bit important especially if you have scheduled scripts that you intended to run.
Here are some ways to change your timezone depending on your Linux distribution:
for RHEL/CENTOS:
Assuming you have the default or current timezone as UTC and you would like to change it to Singapore timezone
[root@freelinux etc]# date Thu Sep 6 23:15:06 UTC 2012 [root@freelinux etc]# rm /etc/localtime
Note: All timezones can be found under the directory /usr/share/zoneinfo
Link the Singapore file under the Asia to the /etc/localtime
#cd /etc #ln -s /usr/share/zoneinfo/Asia/Singapore localtime #date Fri Sep 7 07:17:20 SGT 2012
This localtime symbolic links can be overwritten when you execute tzdata-update which will based from /etc/sysconfig/clock settings configured
Example:
current date in Singapore time, you execute the tzdata-update, it will read the /etc/sysconfig/clock file
[root@freelinux etc]# cat /etc/sysconfig/clock ZONE="Asia/Seoul" UTC=true ARC=false [root@freelinux etc]# date Fri Sep 7 07:26:12 SGT 2012 [root@freelinux etc]# tzdata-update [root@freelinux etc]# date Fri Sep 7 08:26:20 KST 2012
For Ubuntu/Debian, the above method will also work. But it also has some commands to make you life easier, see items 1 & 2
1. A simple way to change your timezone is using the “tzconfig” command which will prompt you with a list of region and cities. It will a simple way to update the link /etc/localtime to point to the correct timezone in /usr/share/zoneinfo
[root@freelinux etc]# tzconfig
2.Another way is using the command “dpkg-reconfigure tzdata”. It will be a menu-based type of configuration screen.
[root@freelinux etc]# dpkg-reconfigure tzdata
3. Another method which will work with other distribution as well is via the TZ environment variable
[root@freelinux ~]# date Fri Sep 7 07:46:09 SGT 2012 [root@freelinux ~]# export TZ=Asia/Manila [root@freelinux ~]# date Fri Sep 7 07:46:30 PHT 2012
4. Another way is via “tzselect” command
[root@freelinux ~]# tzselect