Translated message

A translation of this page exists in English.

Warning message

This translation is outdated. For the most up-to-date information, please refer to the English version.

2016 年 12 月 31 日将会增加闰秒

Solution Verified - Updated -

Environment

Red Hat Enterprise Linux 的所有版本

Issue

  • 在 2016 年 12 月 31 号会增加一个闰秒。系统会自动处理这个闰秒吗?
  • 如果系统没有使用 NTP 服务器进行同步,是否需要执行什么操作以处理该闰秒?
  • 这个闰秒会自动添加吗?

Resolution

为正确处理闰秒,系统需要使用时间同步服务(如 NTP 或 PTP),或者将 tzdata 软件包升级到可以处理这个变化的版本。如需了解更多与处理闰秒相关的信息,请参阅:
解决 Red Hat Enterprise Linux 中的闰秒问题

注:

  • 通过 NTP 同步其时钟的系统会在这个闰秒事件发生时将其时钟拨回一秒(时间跳变)。如果想要测试您的系统以便了解闰秒会对您的应用程序和服务器造成什么影响,请参考方法 https://access.redhat.com/labs/leapsecond/。如果要使用 NTP 渐变(NTP slew)而不是时间跳变来解决这个问题,请参阅文档 是否可以使用渐变模式(slewmode)运行 NTP?

  • 默认情况下,未使用 NTP 或 PTP 同步时钟的 Linux 系统不会自动修正闰秒。当闰秒发生后,这些系统所报告的时间会和 UTC 时间有一秒钟的不同。您需要在闰秒发生后手动调整系统时钟。

  • 也可以通过将 tzdata 软件包升级到最新版本,并将 /usr/share/zoneinfo/right 目录中的相关文件复制到 /etc/localtime 中来解决闰秒问题。如需了解更多与修改时区相关的信息,请参阅 这里。/usr/share/zoneinfo/right 中的文件包含自 1970-01-01 00:00:00(UTC 时间)以来发生的所有闰秒的修正信息。

    tzdata 软件包:应用更新的 tzdata 软件包勘误 RHEA-2016:1982-1,该勘误为将于 2016 年 12 月 31 日 23:59:60(UTC 时间)发生的闰秒添加了一秒钟。

  • /usr/share/zoneinfo 中的其它时区文件不包括对闰秒的调整。

Root Cause

闰秒(leap second)是为对协调世界时(UTC)时间进行的一秒钟调整,以便使其与平均太阳时保持接近。为时钟(也称“挂钟”)添加闰秒是为了补偿地球自转变慢造成的误差。

在需要进行时间调整时,会在 6 月或 12 月最后一天的 23:59:59 和下一天的 00:00:00 之间添加一个“正”闰秒。这个多出的秒在 UTC 时钟中被显示为 23:59:60。

如需了解更多相关信息,请参阅 IERS 的网站:
国际地球自转服务((IERS)

Diagnostic Steps

  $ rpm -q tzdata
tzdata-2016f-1.el6.noarch
  $ zdump -v right/America/Los_Angeles | grep Sat.Dec.31.*2016
// no output yet

This solution is part of Red Hat’s fast-track publication program, providing a huge library of solutions that Red Hat engineers have created while supporting our customers. To give you the knowledge you need the instant it becomes available, these articles may be presented in a raw and unedited form.

Comments