如何在 CLI 上获取除您所在时区之外的不同时钟?

如何在 CLI 上获取除您所在时区之外的不同时钟?

有没有办法在 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

相关内容