无法正确更改时区,时间仍然是前一个时区的时间

无法正确更改时区,时间仍然是前一个时区的时间

我已将时区更改为晚 1 小时。我打过电话

timedatectl set-timezone Asia/Bangkok

虽然改变了时区,但是时间还是和我的旧时区一样,也就是说,这个时间是错误的,比真实时间提前了1个小时:

$ timedatectl status
      Local time: Fri 2016-07-22 12:28:30 ICT
  Universal time: Fri 2016-07-22 05:28:30 UTC
        RTC time: Fri 2016-07-22 05:28:29
       Time zone: Asia/Bangkok (ICT, +0700)
 Network time on: no
NTP synchronized: no
 RTC in local TZ: no

即使重新启动后。

答案1

确定本地时区的一种方法是运行以下脚本:

tzselect

在回答了一些有关位置的问题后,脚本将输出时区的名称(例如亚洲/曼谷)。

/etc/localtime然后通过运行创建文件:

sudo ln -sT /usr/share/zoneinfo/<xyz> /etc/localtime

替换为所选时区的名称(例如亚洲/曼谷)。在您的具体情况下:

sudo ln -sT /usr/share/zoneinfo/Asia/Bangkok /etc/localtime

它将更改您系统范围内的时区(我的意思是对于所有用户)。

您可以通过运行命令来检查新时区是否已正确自动设置date。例如,我现在测试它并返回

Sun Jul 24 13:26:51 ITC 2016

此外,根据tzselect脚本输出的建议,您只需通过设置和导出 TZ 环境变量即可使此更改对您的用户永久生效。为此,您必须将该行附加到主目录中文件TZ='Asia/Bangkok'; export TZ的末尾。.profile您可以运行以下命令来执行此操作:

echo "TZ='Asia/Bangkok'; export TZ" >> $HOME/.profile

之后,您需要退出当前会话并重新登录以使更改生效。

相关内容