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

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

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

  • /etc/当地时间
  • /etc/时区

谁能解释一下它们之间有什么区别以及两者的用途是什么?

答案1

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

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

答案2

时区告诉您的系统您在世界上的哪个位置。即GMT-4GMT+2(取决于您在地球上的确切位置)。

当地时间告诉您的系统您所在位置的准确时间。

相关内容