Linux – Why won’t the timezone changes be reflected in the date command

centoslinux

I copied /usr/share/zoneinfo/Asia/Kolkata to /etc/localtime. I also tried editing ZONE in /etc/sysconfig/clock but my default timezone is still CEST and not IST.

I already checked to make sure that a TZ variable isn't overriding it.

I've already googled it and found http://www.redhat.com/advice/tips/timezone.html and http://kezhong.wordpress.com/2010/03/08/change-timezone-on-centos-5-4/ but it didn't help.

I'm out of ideas. What am I doing wrong?

[root@dhroid ~]$ cat /etc/sysconfig/clock 
ZONE="Asia/Kolkata"
UTC=false
ARC=false
[root@dhroid ~]$ ls -al /etc/localtime 
lrwxrwxrwx 1 root root 32 Jul 19 16:10 /etc/localtime -> /usr/share/zoneinfo/Asia/Kolkata
[root@dhroid ~]$ env | grep TZ
[root@dhroid ~]$ date
Tue Jul 19 16:11:52 CEST 2011
[root@dhroid ~]$ 

Best Answer

I have fixed the problem. There was nothing wrong with what I did. Everything was right the whole time. The issue was with the tzdata package, which was corrupted. As soon as I reinstalled the package from yum with yum reinstall tzdata, it worked!