我已将服务器的时区设置为中央时区:
/etc/localtime -> /usr/share/zoneinfo/US/Central
重新启动后,当我运行 date 命令时,时间仍然以 UTC 列出。
[root@dev etc]# date
Sat Oct 5 16:14:28 UTC 2013
我怎样才能让它显示在当地时区?
答案1
您可以检查这个文件是否有问题:/etc/localtime
例如使用:
zdump -v /usr/share/zoneinfo/US/Central or zdump -v /etc/localtime
就我而言,今年的信息如下:
/usr/share/zoneinfo/US/Central Sun Mar 10 07:59:59 2013 UTC = Sun Mar 10 01:59:59 2013 CST isdst=0 gmtoff=-21600
/usr/share/zoneinfo/US/Central Sun Mar 10 08:00:00 2013 UTC = Sun Mar 10 03:00:00 2013 CDT isdst=1 gmtoff=-18000
/usr/share/zoneinfo/US/Central Sun Nov 3 06:59:59 2013 UTC = Sun Nov 3 01:59:59 2013 CDT isdst=1 gmtoff=-18000
/usr/share/zoneinfo/US/Central Sun Nov 3 07:00:00 2013 UTC = Sun Nov 3 01:00:00 2013 CST isdst=0 gmtoff=-21600
答案2
适用于您的 CentOS 系统的计时技巧。
- 使用如下命令设置时区偏移量:
ln -fs /usr/share/zoneinfo/America/Chicago /etc/localtime
- 检查内容
/etc/sysconfig/clock
- 我的仅包含ZONE="America/Chicago"
- 打开
ntp
。没有借口不是使其运行。 - 如果这是物理系统,您可能需要在 BIOS 中设置硬件时钟,或者在操作系统中使用以下命令进行设置
hwclock -w
这些更改会立即生效,因此您的 date 命令应该输出:
# date
Sat Oct 5 11:38:49 CDT 2013
答案3
还要确保环境变量TZ
未设置,因为它会覆盖所配置的内容/etc/localtime
。
即使是一个无辜的人也export TZ=
会让日期(和其他实用程序)默认输出 UTC。
检查/etc/environment
、、、、、您的桌面环境配置和其他常用来源的配置文件中是否存在设置和导出 TZ 的实例并将/etc/profile
其/etc/bash.bashrc
删除~/.profile
。~/.bashrc
编辑:
还要检查你的/usr/share/zoneinfo/US/Central
文件是否有效:
$ 文件 -L /usr/share/zoneinfo/US/Central /usr/share/zoneinfo/US/Central:时区数据,版本 2,6 个 gmt 时间标志,6 个 std 时间标志,无闰秒,235 个转换时间,6 个缩写字符
答案4
我遇到了完全相同的问题,并且更新 tzdata 为我解决了该问题:
yum update tzdata