为什么我的时区变化不会反映在日期命令中?

为什么我的时区变化不会反映在日期命令中?

我将 /usr/share/zoneinfo/Asia/Kolkata 复制到 /etc/localtime。我还尝试编辑 /etc/sysconfig/clock 中的 ZONE,但我的默认时区仍然是 CEST,而不是 IST。

我已经检查过以确保 TZ 变量没有覆盖它。

我已经在谷歌上搜索过了http://www.redhat.com/advice/tips/timezone.htmlhttp://kezhong.wordpress.com/2010/03/08/change-timezone-on-centos-5-4/但没有帮助。

我没什么主意了。我做错了什么?

[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 ~]$ 

答案1

我已经修复了这个问题。我所做的一切都没有错。所有事情都正确。问题出在 tzdata 包上,它已损坏。当我使用 重新安装 yum 中的包后yum reinstall tzdata,它就正常工作了!

答案2

将更改保存到文件“/etc/sysconfig/clock”后,需要重新启动才能使时区更改生效。之后您是否重新启动了您的机器?

答案3

在这里找到了对我有用的答案(Ubuntu 14.04+):Linux 中的时区设置[关闭]

$ sudo timedatectl set-timezone Etc/UTC

我重启后再次检查,问题仍然存在。希望这对某些人有帮助 :)

答案4

最近在 Ubuntu 上遇到了这个问题。dhroid 的回答给了我所需的提示。由于 Ubuntu/Debian 上的具体步骤不同,因此创建一个新的答案。通常,我会使用以下方法设置时区:

sudo mv /etc/localtime{,.bak}
sudo ln -sf /usr/share/zoneinfo/America/Los_Angeles /etc/localtime

奇怪的是,这不起作用所以我尝试重新配置 tzdata:

sudo dpkg-reconfigure tzdata

得到了这个奇怪的结果:

Current default time zone: 'America/Los_Angeles'
Local time is now:      Wed Jul  6 20:10:37 UTC 2016.

重新安装 tzdata 修复了这个问题:(apt-get install 用最新的包替换现有的包)

sudo apt-get install tzdata

date
etc. PDT 2016

相关内容