如何检查 Linux 中的时区?

如何检查 Linux 中的时区?

有没有办法检查我当前在 Linux 上处于哪个时区?

答案1

通常,TZ环境变量会告诉你一些有用的信息。但是,最好使用诸如mktime()和之类的函数在和本地时区表示localtime()之间进行转换time_t。也就是说,不要尝试自己进行转换

答案2

如果你指的是从控制台,只需输入:

date +%Z

答案3

如果您想要数字时区:

date +'%:z %Z'

示例输出:

-05:00 EST

答案4

有时你可能正在寻找规范的时区,而不是由例如生成的简短格式date %Z。在Fedora 等US/Eastern系统上,输出许多有用的信息,包括当前区域:timedatectltimedatectl

# timedatectl
      Local time: Tue 2016-09-13 17:10:26 EDT
  Universal time: Tue 2016-09-13 21:10:26 UTC
        RTC time: Tue 2016-09-13 21:10:26
       Time zone: US/Eastern (EDT, -0400)
 Network time on: yes
NTP synchronized: yes
 RTC in local TZ: no

不幸的是,timedatectl接受set-timezone为命令,但没有对应的get-timezone。解析如下:

# timedatectl status | grep "zone" | sed -e 's/^[ ]*Time zone: \(.*\) (.*)$/\1/g'`
US/Eastern

对于 systemd >= 241,请参阅@BurninateSE 的回答(TLDR:)timedatectl show --va -p Timezone

相关内容