如何读取时区信息

Reg*_*ser 8 time timezone

我正在看一些系统编程的书。它提到使用TZ带有冒号分隔列表的变量,该列表从/usr/share/zoneinfo. 可能这本书有点过时了。

我检查了我的 Ubuntu 系统

/usr/share/zoneinfo/Asia$ file Oral
Run Code Online (Sandbox Code Playgroud)

给出以下输出

口头:时区数据,第 2 版,14 个格林威治标准时间标志,14 个标准时间标志,无闰秒,51 个过渡时间,14 个缩写字符

我尝试在 vi 中打开它,但无法读取文本。我也尝试阅读,/etc/localtime但在这里也无法阅读。

  1. 我如何基本上阅读上述类型的文件?

  2. Ubuntu 10.04 中定义的 TZ 环境变量在哪里?

poo*_*lie 10

嗯,这取决于你想读什么?

几乎所有程序都依赖于$TZ在环境中设置或/etc/localtime作为时区文件的链接。然后C 库将自动安排例如localtime()返回正确的时间。

1)我如何基本上阅读上述类型的文件

zdump -v /etc/localtime 将向您展示文件中的内容。

这些是不供人类阅读的编译文件。 apt-get source tzdata会给你他们来自的来源。

2)Ubuntu 10.04中定义的TZ环境变量在哪里

默认情况下未设置。相反,/etc/localtime是相关 zoneinfo 文件的副本,并且/etc/timezone是该区域的名称。

您可以使用sudo tzconfig或通过 GUI更改它们。

例如,~/.env如果您想要一个不同的个人默认设置,您可以将其设置。