有没有办法在 CLI 上调用或了解不同的时钟或时间。问题是我使用 UTC+5:30 时间,但有时需要知道不同时区的时间。如果有一种可以了解这一点的 CLI 方式将会有所帮助。
答案1
我想man date
你的答案已经有了:
ENVIRONMENT
The following environment variables affect the execution of date:
TZ The timezone to use when displaying dates. The normal format is a pathname
relative to /usr/share/zoneinfo. For example, the command
``TZ=America/Los_Angeles date'' displays the current time in California. See
environ(7) for more information.
/usr/share/zoneinfo
有时区名称。
答案2
date
您可以通过更改变量来更改将使用的时区TZ
例如
$ date
Sun Oct 11 01:42:44 CEST 2015
$ TZ=US/Pacific date
Sat Oct 10 16:43:14 PDT 2015
$ TZ=UTC date
Sat Oct 10 23:44:04 UTC 2015
答案3
正如其他几个人提到的,TZ
环境变量是影响date
.然而,在大多数情况下,您不想离开 TZ
改变;您只想查看该时区的时间,而不会影响您的环境。
为此,最好使用的工具是env
.从env
手册页:
NAME
env - run a program in a modified environment
SYNOPSIS
env [OPTION]... [-] [NAME=VALUE]... [COMMAND [ARG]...]
因此在这种情况下,您想要的命令将类似于:
env TZ='EST' date
时区还有许多其他可接受的格式。如果您有特殊要求,最好阅读man timezone
解释有效时区格式的内容。
答案4
我假设您只需要经常检查几个 TZ。有了这个假设,您可能会发现为需要检查的每个 TZ 设置别名或函数很有用。别名很简单...
alias est="TZ=US/Eastern date"
函数定义看起来像......
est() { TZ=US/Eastern date ; }
为每个 TZ 定义函数还有一个额外的好处,即隔离对 TZ 的更改。这意味着当函数结束时分配给 TZ 的值将消失,当您返回到 shell 时返回到其原始值。
要在每次登录时使用其中任何一个,您需要将其包含在 ~/.bash_profile 中。一旦您完成其中一项操作,打开一个新的 shell 或注销/登录,然后使用 获取日期/时间est
。