命令行世界时钟?

8 python timezone command-line-interface

是否有一个脚本可以在*nix终端上显示一个简单的世界时钟(世界各地的时间)?

我正在考虑编写一个快速的Python脚本,但我觉得这将比我想象的更多(例如由于配置和输出格式) - 更不用说重新发明轮子......

Dus*_*tin 17

我有这个bourne shell脚本:

#!/bin/sh

PT=`env TZ=US/Pacific date`
CT=`env TZ=US/Central date`
AT=`env TZ=Australia/Melbourne date`

echo "Santa Clara    $PT"
echo "Central        $CT"
echo "Melbourne      $AT"
Run Code Online (Sandbox Code Playgroud)


Jon*_*ler 6

从来没有想过,但不是很难做到.

#!/bin/sh
# Command-line world clock

: ${WORLDCLOCK_ZONES:=$HOME/etc/worldclock.zones}
: ${WORLDCLOCK_FORMAT:='+%Y-%m-%d %H:%M:%S %Z'}

while read zone
do echo $zone '!' $(TZ=$zone date "$WORLDCLOCK_FORMAT")
done < $WORLDCLOCK_ZONES |
awk -F '!' '{ printf "%-20s  %s\n", $1, $2;}'
Run Code Online (Sandbox Code Playgroud)

给定输入文件:

US/Pacific
Europe/London
Europe/Paris
Asia/Kolkatta
Africa/Johannesburg
Asia/Tokyo
Asia/Shanghai
Run Code Online (Sandbox Code Playgroud)

我得到了输出:

US/Pacific             2008-12-15 15:58:57 PST
Europe/London          2008-12-15 23:58:57 GMT
Europe/Paris           2008-12-16 00:58:57 CET
Asia/Kolkatta          2008-12-15 23:58:57 GMT
Africa/Johannesburg    2008-12-16 01:58:57 SAST
Asia/Tokyo             2008-12-16 08:58:57 JST
Asia/Shanghai          2008-12-16 07:58:57 CST
Run Code Online (Sandbox Code Playgroud)

我很幸运,这需要不到一秒的时间才能完成并且没有超过1秒的界限.

(我没有注意到Kolkatta失败并违反GMT.我的系统仍有亚洲/加尔各答作为印度的入口.)


小智 1

如果您仍然想用 Python 编写,请考虑 Pytz:

http://pytz.sourceforge.net/

他们的首页向您展示了许多简单的方法来完成您正在寻找的事情。

也就是说,我确信如果您在 Google 上花几分钟,您会发现大量脚本,其中一些甚至可以为 *nix 启动图形程序。“python 世界时钟”的第一个结果列表似乎仅表明了这一点。