对于我的用户帐户,我在 .bash_profile 文件中将 TZ 变量显式导出为 america/chicago,因此当我输入:date 时,我会得到 CST 格式的日期。但是,我没有为任何其他用户设置 TZ 变量,当他们输入:date 时,他们也会获得 CST 中的日期,但命令的输出:timedatectl 特别指出时区是 UTC:
[tim 等]timedatectl 警告:忽略 TZ 变量。仅读取系统的时区设置。
Local time: Tue 2018-07-17 18:15:53 UTC Universal time: Tue 2018-07-17 18:15:53 UTC RTC time: Tue 2018-07-17 18:15:52 Time zone: UTC (UTC, +0000) NTP enabled: yes NTP synchronized: yes RTC in local TZ: no DST active: n/a
没有将 TZ 变量设置为 america/chicago 的用户如何使用 date 命令获取 america Chicago 输出:
[蒂姆等]日期 2018 年 CDT 7 月 17 日星期二 13:18:46
我也已经检查过了:
lrwxrwxrwx。 1 root root 25 Mar 23 12:50 当地时间 -> ../usr/share/zoneinfo/UTC
是否与启用 NTP 的线路有关?这也让我感到困惑,因为我没有运行 ntpd 守护进程。这是一台 aws ec2 机器,如果有帮助的话
谢谢!
答案1
在线快速搜索找到了一个timedatectl
实用程序。它显示我的虚拟机缺少时区配置,
$ sudo timedatectl
Local time: Tue 2018-11-06 17:08:26 UTC
Universal time: Tue 2018-11-06 17:08:26 UTC
RTC time: Tue 2018-11-06 17:08:11
Time zone: Etc/UTC (UTC, +0000)
NTP enabled: yes
NTP synchronized: no
RTC in local TZ: no
DST active: n/a
我通过检查符号链接检查了低级系统范围的时区设置/etc/localtime
,
$ ls -la /etc/localtime
lrwxrwxrwx. 1 root root 29 Jun 27 2017 /etc/localtime -> ../usr/share/zoneinfo/Etc/UTC
然后我设置时区并检查结果,
$ sudo timedatectl set-timezone 'America/Toronto'
$ sudo timedatectl
Local time: Tue 2018-11-06 12:09:23 EST
Universal time: Tue 2018-11-06 17:09:23 UTC
RTC time: Tue 2018-11-06 17:09:07
Time zone: America/Toronto (EST, -0500)
NTP enabled: yes
NTP synchronized: no
RTC in local TZ: no
DST active: no
Last DST change: DST ended at
Sun 2018-11-04 01:59:59 EDT
Sun 2018-11-04 01:00:00 EST
Next DST change: DST begins (the clock jumps one hour forward) at
Sun 2019-03-10 01:59:59 EST
Sun 2019-03-10 03:00:00 EDT
$ ls -la /etc/localtime
lrwxrwxrwx 1 root root 37 Nov 6 12:09 /etc/localtime -> ../usr/share/zoneinfo/America/Toronto
我想我可能必须重新启动才能让服务了解新配置。