![奇怪的 CentOS 服务器行为时区](https://linux22.com/image/696456/%E5%A5%87%E6%80%AA%E7%9A%84%20CentOS%20%E6%9C%8D%E5%8A%A1%E5%99%A8%E8%A1%8C%E4%B8%BA%E6%97%B6%E5%8C%BA.png)
我已经购买了 CentOS 6.8 专用服务器以从共享主机迁移,但我遇到了时区无法正确显示的问题。
我已将php.ini
时区更改为Europe/Dublin
- 但不起作用
我已将httpd.conf
时区更改为Europe/Dublin
- 但不起作用
我正在尝试更改实际的 CentOS 时区,但事情却变得奇怪。我将时区更改为Europe/Dublin
从CST
(这是默认设置),它似乎认为Europe/Dublin
是GMT+14
。
请参阅下面的图片链接。第二个日期应为 2017 年 1 月 7 日星期六 07:48:11 GMT。
答案1
CST 时区是 GMT -6,因此如果 CST 时间是 15:47,那么 GMT 时间就是 21:47。
如果您说截屏时的时间应该是早上 07:48,那么您的服务器时间不正确,您需要同步它。
运行此命令来同步时间以更正一个:
ntpdate -s time.nist.gov
您的服务器上可能根本没有ntp
安装,在这种情况下您需要使用以下命令进行安装:
yum install ntp ntpdate ntp-doc
并启动NTP服务来保持时间同步:
/etc/init.d/ntpd start
另外,请确保将 NTP 服务设置为在启动时自动启动:
chkconfig ntpd on
答案2
我认为根本问题是“CST”时区名称不明确。它可以代表中部标准时间、中国标准时间和古巴标准时间。
[me@risby ~]$ export TZ=GMT ; date
Sat 7 Jan 09:21:31 GMT 2017
[me@risby ~]$ export TZ=US/Central ; date
Sat 7 Jan 03:21:31 CST 2017
[me@risby ~]$ export TZ=ROC ; date
Sat 7 Jan 17:21:31 CST 2017
[me@risby ~]$ export TZ=America/Havana ; date
Sat 7 Jan 04:21:31 CST 2017
(我知道中华民国不是中华人民共和国,但是他们保持相同的时间,而且我无法立即在我的 中找到一个明确的 PRC 特定时区/usr/share/zoneinfo
。)
所以我怀疑你认为你的系统时钟是中国标准时间,因此期望格林威治标准时间是八小时在后面(0748GMT),而我的猜测是,现在是中部标准时间,比格林威治标准时间早 6 个小时先(2148GMT)。后一种解释与您向我们展示的内容一致。
因此,请将系统时区设置为您想要的时区,最好使用地理时区而不是基于缩写如果系统时钟错误,请进行设置(最好使用 NTP,它完全基于 UTC,不会嵌入任何这些问题,并且会使时钟保持同步)。
答案3
我觉得这没问题。都柏林 (UTC+0) 目前比 CST (UTC-6) 早 6 小时。执行操作时 CST 时间为 15:47。操作后时间为 21:48。时差是正确的。