如何在Linux或者Unix上查找给定国家/地区的区域信息

时间:2020-01-09 10:42:14  来源:igfitidea点击:

在Linux,FreeBSD,OS X或者类似Unix的系统上,如何找到命令行上指定的每个区域名称的当前时间?
如何在命令行上报告新加坡或者日本的时区信息?
您可以使用zdump命令查看命令行上指定的每个区域名称的当前时间。

如何找到所有区域名称的列表?

标准时区目录位于以下位置:

  • AIX,Solaris,HP-UX/usr/share/lib/zoneinfo /
  • OS X,FreeBSD,OpenBSD,NetBSD/usr/share/zoneinfo /
  • Linux/usr/share/zoneinfo /

cd到以上目录以查看时区数据库文件:

$ cd /usr/share/zoneinfo/
$ ls -l
$ ls -l | more
$ ls

您可以CD进入亚洲,欧洲或者美洲等目录,以获取更多详细信息:

$ cd America
$ ls

如何查看给定国家/地区名称的时区信息?

要查看新加坡的时区信息,请执行:

$ zdump Singapore

要查看日本的时区信息,请执行:

$ zdump Japan

要查看冰岛的时区信息,请执行:

$ zdump Iceland

要查看纽约的时区信息,请执行:

$ zdump America/New_York

如何使用bash循环查看不同区域的当前时间?

假设您的云服务器位于4个不同的时区,并且您想知道当前时间以进行技术支持:

for t in America/New_York Australia/Perth Japan Asia/Kolkata ; do   zdump $t; done

输出示例:

America/New_York  Wed Dec 30 12:03:23 2014 EST
Australia/Perth  Thu Dec 31 01:03:23 2014 AWST
Japan  Thu Dec 31 02:03:23 2014 JST
Asia/Kolkata  Wed Dec 30 22:33:23 2014 IST

查看详细时区信息

您可以将-v选项传递给zdump命令。
从手册页:

对于命令行上的每个区域名称,以最小可能时间值打印时间,以最小可能时间值打印一天后的时间,分别是前一秒和精确到每个检测到的时间不连续的时间,一天中的时间小于如果给定时间为夏时制,则每行以isdst = 1结束,否则以isdst = 0结束。

尝试以下命令:

$ zdump -v Japan

如何切断详细输出

您还可以通过-c cutoffyear选项在给定年份的开始附近切断详细输出。
例如,要查看日本的详细时区信息,并在2035年初附近停止输出详细信息,请执行:

$ zdump -v -c 2035 Japan