如何通过终端检查计算机的时区?

我正在编写一个bash脚本,其中在某个时刻需要确定用户的时区,那么我应该如何在终端中检查时区呢?我希望能够以GMT和UTC的形式获取输出。如果可以以其他形式获取输出,那么提供这些形式的列表以及如何获取它们的方法将会很好。我正在运行Ubuntu GNOME 15.10,并使用GNOME 3.18。
1个回答

使用:

timedatectl status | grep "Time zone"

没有使用grep命令,你会得到更多的信息。
正如@Christian Ulbrich评论中指出的,时区的措辞似乎取决于你使用的timaedatectlsystemd版本(在14.04.5上,它似乎是以一个词Timezone写成的),所以为了确保你获得正确的输出,你可以运行上述命令而不通过grep进行管道传输,以确保你grep到正确的内容。
以下是在18.04上运行上述timedatectl status命令并不通过grep进行管道传输的示例输出:

enter image description here


1小修改:你可能只想使用grep命令搜索"zone",因为时区有时被视为一个单词。 - aliasav
这种情况下,这是用哪种语言写的? - Videonauth
2在Ubuntu上,timedatectl将时区显示为一个单词。 - aliasav
那我可能是在某个特殊的Ubuntu上,你可以在上面看到timedatectl的输出,没有grep的情况下,在Ubuntu 18.04上是这样的,而且在我写这个答案时安装的16.04也是一样的。不用说,在我安装bionic之前,16.10、17.04和17.10也都是一样的。即使没有状态参数,timedatectl也会给我返回相同的输出。 - Videonauth
啊,好的,可能还有不同的软件包版本。也许你最好使用不区分大小写的“timezone”或“time zone”进行grep,以确保准确无误。 - aliasav
3在Ubuntu 14.04.5 LTS上,确实是Timezone而不是Time zone,所以grep "Time zone"无法工作。看起来这取决于使用的Systemd版本。 - Christian Ulbrich
@ChristianUlbrich 谢谢。我会在再次使用电脑时相应地更改我的回答。 - Videonauth