我一直认为 Linux 系统使用/etc/timezone作为时区,但是:
$ cat /etc/timezone
Etc/UTC
$ date
Tue May 28 12:34:01 PM PDT 2024
此处,/etc/timezone是 UTC,但date
以 PDT 进行报告。
如何date
确定时区?
如果重要的话,这是 Ubuntu 22.04。
我一直认为 Linux 系统使用/etc/timezone作为时区,但是:
$ cat /etc/timezone
Etc/UTC
$ date
Tue May 28 12:34:01 PM PDT 2024
此处,/etc/timezone是 UTC,但date
以 PDT 进行报告。
如何date
确定时区?
如果重要的话,这是 Ubuntu 22.04。
/etc/timezone
由某些应用程序(主要是 Java 应用程序)使用,但/etc/localtime
通常是系统时区信息的权威来源。通常是指向 /usr/share/zoneinfo 目录中包含时区数据的文件的符号链接,并且在未设置环境变量/etc/timezone
时由大多数 libc 实现内部使用。TZ
systemd 还添加了timedatectl
控制它的功能,这在 Ubuntu 上是应该有的。在您的具体情况下,虽然 /etc/timezone 显示 Etc/UTC,但 date 命令的输出显示 PDT 时间。这种差异通常表明 /etc/localtime 文件设置的时区与 /etc/timezone 中指示的时区不同。
要验证并解决此差异:
ls -l /etc/localtime
,它可能显示 PDT 或类似的时区;sudo dpkg-reconfigure tzdata
使用, 或更新时区sudo timedatectl set-timezone Etc/UTC
。