登录远程机器 X 时,默认情况下date
会给出本地时区的时间:
$ date
Mon Nov 17 22:45:47 CET 2014
Run Code Online (Sandbox Code Playgroud)
请注意,TZ
未设置:
$ export | grep TZ
$
Run Code Online (Sandbox Code Playgroud)
所以,我TZ
为我使用的每台机器设置了我自己的本地时区:
$ export TZ=/usr/share/zoneinfo/Canada/Eastern
$ date
Mon Nov 17 16:46:13 EST 2014
Run Code Online (Sandbox Code Playgroud)
问题是,一旦我设置了这个,我如何获得系统默认时区的时间,即如果我作为用户不手动设置时适用的时区TZ
? 取消设置 TZ
给了我 UTC 时间,这不是我所寻求的:
$ TZ= date
Mon Nov 17 21:47:13 UTC 2014
Run Code Online (Sandbox Code Playgroud)
有趣的是,TZ= date
即使我还没有设置TZ
任何东西,也会给出 UTC 时间;但是当我还没有设置TZ
任何东西时,一个简单的date
给出了系统默认时区中的日期......
尝试取消设置TZ
变量(这与将其设置为 不同""
):
$ (date; export TZ=/usr/share/zoneinfo/Canada/Eastern; date; unset TZ; date)
Tue Nov 18 03:25:25 IST 2014
Mon Nov 17 16:55:25 EST 2014
Tue Nov 18 03:25:25 IST 2014
Run Code Online (Sandbox Code Playgroud)
请注意我如何在子 shell 中尝试它,以便我当前的 shell 不受影响。