CentOS 忽略时区并显示 UTC

CentOS 忽略时区并显示 UTC

我已将服务器的时区设置为中央时区:

/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

相关内容