最近,我在区域设置和 JVM 方面遇到了一些问题。但现在问题比这更严重了。我今天进行了 Yum 更新,对所有内容进行了全面更新。已经有一段时间没有这样做了。
一切都运行良好,只是系统区域设置似乎已恢复为 UTC 时间。我曾经localectl set-locale
修改过区域设置,然后重新启动了服务器。
运行时,localectl status
我得到以下信息:
System Locale: LANG=en_GB.UTF-8
LC_NUMERIC=sv_SE.UTF-8
LC_TIME=sv_SE.UTF-8
LC_MONETARY=sv_SE.UTF-8
LC_PAPER=sv_SE.UTF-8
LC_MEASUREMENT=sv_SE.UTF-8
VC Keymap: us
X11 Layout: us
我没有设置VC Keymap: us
,或者x11 Layout: us
它们只是这样出现。但其余设置都符合我的预期。
然而,我的主要问题是时间;设置LC_TIME=sv_SE.UTF-8
似乎对系统时间没有影响,这意味着我的所有服务时钟都偏离了两个小时,报告的是 UTC 时间而不是 CEST 时间。这会导致时间敏感的服务出现问题。
我并不真正关心其余的设置,据我所知,它们似乎是正确的,但我真的需要系统时间是正确的。
当我运行时,date
我得到以下内容:
tis sep 20 12:44:38 UTC 2016
文本是瑞典语,正如它应该的那样,但时间是 UTC,而不是 CEST。
我该如何解决这个问题?
答案1
虽然时区和语言环境通常主要由您所在的位置决定,时区不是语言环境的一部分。它使用不同的环境变量,TZ
/etc/localtime
-- 检查是否已设置以及设置成什么。如果未设置,系统默认(对于 CentOS)是应从所需文件复制的文件/usr/share/zoneinfo/**
,在您的情况下大概是Europe/Stockholm
。