本地时间和时区文件有什么区别?

Car*_*sAS 10 debian timezone

我正在设置一个 docker 容器,并且有两个地方设置了时区:

  • /etc/本地时间
  • /etc/时区

任何人都可以向我解释它们之间的区别以及两者的用途吗?

Aus*_*arn 9

/etc/timezone是您所在时区的基于文本的表示形式。这可以表示为 GMT/UTC 的偏移量,但更多情况下/usr/share/zoneinfo,它是指向适当时区数据文件的路径(例如,如果您在大多数在美国东部的地方,这将是America/New_YorkUS/Eastern)。这样做的主要目的是确保/etc/localtime在更新数据文件时正确/usr/share/zoneinfo更新(尽管某些系统会创建/etc/localtime指向正确文件的符号链接)并为时区提供一个快速的用户友好名称(US/Eastern是比EST或更用户友好EDT)。只有某些系统实际使用此文件。

/etc/localtime是计算相对于 UNIX 时间(内核使用的内部表示,自 1970-01-01 00:00:00 UTC 以来的秒数)的确切规则的二进制表示。这包括诸如与 UTC 的正常偏移量、夏令时规则(何时开始和结束以及适用的偏移量)、闰日规则以及注释已观察到的闰秒数等内容. 这被诸如date命令(及其在各种编程语言中的等效函数)之类的东西使用,以准确显示本地时间。所有具有传统用户空间的 Linux 系统都使用此文件。