Вы спрашиваете о стандартах времени . В этой области важно понимать контекст о том, как предполагается использовать стандарт.
Если принять ваш вопрос напрямую , то стандарт времени, который вы описываете, составляет Международное атомное время (TAI). Это стандарт, который все мировые институты хронометража (NIST, NPL и т. Д.) Используют для координации своих часов. Это очень полезно для этой цели, так как это то, для чего оно было разработано. У него нет високосных секунд.
Однако TAI редко используется непосредственно в вычислительной технике или в бизнесе. Единственный стандарт времени, который имеет значение для большинства из нас, это Всемирное координированное время (UTC). Это то, что отслеживает системное время вашего компьютера, и мы обычно синхронизируемся с этим стандартом, используя NTP . имеет дополнительные секунды.
Протокол PTP можно использовать для синхронизации часов компьютера с либо TAI, либо UTC . Это потому, что TAI является основой, но протокол отдельно переносит текущее смещение между UTC и TAI.
Большинство систем не отображают високосных секунд. Вместо этого они обычно поглощаются во время синхронизации. Другими словами, после того, как произойдет високосная секунда, система может отклоняться от UTC на одну секунду до следующей синхронизации. Тем не менее, это поведение может варьироваться в зависимости от систем и платформ. Некоторые могут выбрать для отображения его напрямую. Некоторые могут «размазать» високосную секунду в течение дня.
Метки времени Unix интересны тем, что они оба имеют и не имеют високосных секунд, в зависимости от того, как вы интерпретируете проблему. У них есть дополнительные секунды, поскольку временная метка выровнена по UTC, поэтому любая интерпретируемая вами временная метка включает все дополнительные секунды, которые произошли на сегодняшний день. Но у них нет високосных секунд, так как они не учитываются при расчете. Вычисление - это точное количество секунд с начала эпохи Unix (1970-01-01T00:00:00Z
). Другими словами, временная метка Unix самой високосной секунды (например, 2016-12-31T23:59:60Z
) неоднозначна.
В конечном счете, в повседневных вычислениях вам, вероятно, не следует выбирать стандарт, отличный от UTC, или беспокоиться о неоднозначности високосных секунд Unix Timestamp, если только у вас нет особых случаев использования, когда високосные секунды становятся проблемой.