【问题标题】:Are Linux's timezone files always in /usr/share/zoneinfo?Linux 的时区文件是否总是在 /usr/share/zoneinfo 中?
【发布时间】:2010-10-09 08:25:56
【问题描述】:

我正在编写一个需要能够在 Linux 上读取时区文件的程序。这意味着我需要能够在发行版中始终如一地找到它们。据我所知,它们总是位于 /usr/share/zoneinfo 中。问题是,它们实际上是否总是 位于 /usr/share/zoneinfo 中?还是有将它们放在其他地方的发行版?如果是这样,他们把它们放在哪里?

【问题讨论】:

    标签: linux timezone


    【解决方案1】:

    引用tzset(3):

    使用的系统时区目录取决于 (g)libc 版本。 Libc4 和 libc5 使用 /usr/lib/zoneinfo, 并且,从 libc-5.4.6 开始, 当这不起作用时,将尝试 /usr/share/zoneinfo。 glibc2会使用环境 变量 TZDIR,当它存在时。它的 默认值取决于它是如何安装的,但通常是 /usr/share/zoneinfo.

    但是请注意,没有什么可以阻止一些不正当的发行版修补 libc 并将文件放置在他们想要的任何位置。

    【讨论】:

      【解决方案2】:

      The public-domain time zone database 包含在 Linux 上处理时区的代码和数据。

      公共域时区数据库 包含代表的代码和数据 对许多人来说,当地时间的历史 周边的代表性地点 地球。它会定期更新为 反映政治变化 主体到时区边界,UTC 偏移量和夏令时规则。 该数据库(通常称为 tz 或 zoneinfo) 被几个人使用 实现,包括 GNU C 用于 GNU/Linux、FreeBSD、 NetBSD、OpenBSD、Cygwin、DJGPP、AIX、 Mac OS X、OpenVMS、Oracle 数据库、 Solaris、Tru64 和 UnixWare。

      这涵盖了很多系统,但我只能同意 Roman 的观点,即无论出于何种原因,都无法阻止任何人创建不同的发行版。据我所知,任何官方标准都没有涵盖 zonezinfo 文件的存在和位置。标准(例如 POSIX 和 XPG4)仅建立 API。

      【讨论】:

      猜你喜欢
      • 2012-06-05
      • 1970-01-01
      • 2019-07-08
      • 1970-01-01
      • 2013-08-09
      • 1970-01-01
      • 2018-04-27
      • 2022-01-03
      • 1970-01-01
      相关资源
      最近更新 更多