Change Timezone in Linux in different ways



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
[[email protected] etc]# date
Thu Sep 6 23:15:06 UTC 2012 
[[email protected] 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

[[email protected] etc]# cat /etc/sysconfig/clock
ZONE="Asia/Seoul"
UTC=true
ARC=false
[[email protected] etc]# date
Fri Sep 7 07:26:12 SGT 2012
[[email protected] etc]# tzdata-update
[[email protected] 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
[[email protected] etc]# tzconfig
2.Another way is using the command “dpkg-reconfigure tzdata”. It will be a menu-based type of configuration screen.
[[email protected] etc]# dpkg-reconfigure tzdata
3. Another method which will work with other distribution as well is via the TZ environment variable
[[email protected] ~]# date
Fri Sep 7 07:46:09 SGT 2012
[[email protected] ~]# export TZ=Asia/Manila
[[email protected] ~]# date
Fri Sep 7 07:46:30 PHT 2012 
4. Another way is via “tzselect” command
[[email protected] ~]# tzselect