В сутках 24 часа, час состоит из 60 минут, а каждая минута - из 60 секунд. Эти бытовые аксиомы мы знаем назубок с детства. Но примерно раз в год-полтора к одним из суток прибавляется дополнительная секунда. Она-то и стала камнем преткновения в спорах между учеными, выступающими за сохранение "естественного" хода времени, и их коллегами, ратующими за предсказуемость и непрерывность временного потока.
С годами предложение "сверить часы" потеряло актуальность не столько из-за увеличения точности механических и электронных часов, сколько благодаря появлению эталонного времени. Еще двести лет назад большинство крупных городов жило по собственному времени, а разница между двумя населенными пунктами, расположенными на разных меридианах, исчислялась не в "круглых" часах, но также и/или в определенном количестве минут и секунд. Более того, даже в одном городе можно было наблюдать расхождение между механическими часами, настроенными по местному среднему солнечному времени, и солнечными часами, указывающими истинное солнечное время: разница (определяемая уравнением времени) могла достигать 17 минут.
Сельскому жителю для полноценной жизни достаточны были простейшие временные ориентиры - рассвет, полдень и закат. Но с ускорением жизни в европейских городах и развитием транспортных и коммуникационных сетей (железные дороги и телеграф) потребовалось увеличить точность определения времени и научиться относительно легко и быстро переводить одно местное время в другое. Решение этих задач имело первостепенную важность для морской навигации. Данные о точном времени (относительно эталона) позволяли вычислять координаты корабля или судна. При этом погрешность в одну секунду на часах могла дать расхождение в полкилометра. Многие обсерватории того времени в первую очередь обслуживали интересы национальных флотов, через их меридианы проходили точки отсчета координат на местных картах, которые были фактически не совместимы с иноземными. В Российской империи, например, такую роль играла Пулковская обсерватория в Санкт-Петербурге. При ней была организована служба точного времени, которая ровно в полдень подавала сигнал для пушечного выстрела сначала со двора Адмиралтейства, а позже - с Петропавловской крепости.
Для решения двух связанных задач - определения эталонной системы координат и стандартного времени - в 1884 году в Вашингтоне собралась Международная меридиальная конференция. Для унификации времени было решено ввести 24 часовых сектора (если изначально часовых поясов было столько же, то сейчас их насчитывается четыре десятка), выбрав в качестве точки отсчета Гринвичский меридиан. Правда, первые конвенциональные сутки начинались в полдень по GMT (среднему времени по Гринвичу), что несколько противоречило сложившейся практике гражданского времени. В итоге только через 40 лет британское адмиралтейство и французский флот сумели убедить астрономов изменить сложившуюся практику и начать отсчет суток в полночь: для этого британцы один раз "сократили" последний астрономический день в году на 12 часов и приравняли 31,5 декабря 1924 года GMT и 1,0 января 1925 года GMT. Их коллеги решили, что изменение значения GMT может ввести в заблуждение, и в 1928 году решили ввести в качестве его эквивалента термин универсального времени (Universal Time, UT).
В 1930-х годах астрономы выяснили, что Земля вращается вокруг своей оси неравномерно. Она постепенно замедляется из-за ряда факторов, например, под гравитационным воздействием Луны. Эти заключения привели к необходимости определения эталонной секунды, раз уж старое (одна 86400-ая суток) оказалось неточным. Было сформулировано понятие эфемеридной секунды, которая равнялась 1/31556925,9747 конкретного тропического года, начинавшегося 0 января 1900 года (или 31 декабря 1899 года), и таким образом не была привязана к изменявшейся скорости вращения Земли вокруг своей оси. В 1956 году Международный комитет мер и весов (CIPM) рекомендовал к использованию новое определение секунды. Через четыре года Генеральная конференция по мерам и весам (CGPM) приняла эфемеридную секунду за базовую единицу времени в международной системе единиц (СИ).
Эфемеридная секунда была всем хороша. Единственная проблема заключалась в том, что невозможно заново воспроизвести и замерить тропический 1900 год. Но тут на помощь астрономам пришли физики. В середине 1950-х годов появились первые атомные часы на пучке атомов цезия, которые оказались на несколько порядков более точными, чем кварцевые часы (частота последних нарушалась со временем из-за старения кристалла кварца). В результате был создан атомный эталон времени, одна секунда которого равнялась секунде эфемеридного времени. Новую систему синхронизировали с универсальным временем, начиная с 00:00:00 1 января 1958 года. В 1967 году Генеральная конференция по мерам и весам приняла новое определение секунды, которая с тех пор длилась 9 192 631 770 колебаний излучения атома цезия-133. В 1970 году новую атомную шкалу предложили назвать международным атомным временем (TAI), а в следующем году CGPM утвердила это решение.
К тому моменту существовало несколько версий универсального времени, одним из которых было появившееся в 1961 году универсальное координированное время (UTC). Его особенность заключалась в переменной длительности секунды относительно атомного эталона: астрономы меняли ее значение раз в несколько месяцев для того, чтобы по итогам года добиться минимального смещения универсального времени относительно среднего солнечного. Эта система оказалась слишком неудобной из-за необходимости слишком частых корректировок.
В итоге начиная с 1 января 1972 года было принято новое определение UTC. С тех пор секунда UTC равнялась секунде TAI. При этом вводилось понятие секунды координации, или високосной секунды, которая добавлялась или вычиталась из суток в случае, когда разница между средним солнечным временем и UTC превышала 0,9 секунды. Изначальное смещение UTC относительно TAI составляло 10 секунд, а новые високосные секунды с тех пор добавляли в конце суток 30 июня и 31 декабря. К настоящему моменту разница между TAI и UTC составляет 34 секунды. В 1975 году Генеральная конференция по мерам и весам рекомендовала к повсеместному использованию именно этот вариант универсального времени. UTC из-за своей относительной простоты и одновременно точности стал общемировым стандартом.
Изобретение високосных секунд сначала казалось элегантным решением задачи синхронизации атомного и "земного" времени. Никаких проблем не предвиделось: велика задача - подкрутить в случае необходимости секундную стрелку часов. Но с развитием автоматизированных систем с минимальным участием человека очевидным стали главные недостатки новой системы - невозможность на годы вперед составить точный график ввода секунд координации и отсутствие четких "гайдлайнов", разъясняющих, как следует обходиться программистам с временным "лайфхаком" астрономов.
Это привело к целому ряду проблем. Так, в зависимости от реализации сетевого протокола NTP, предназначенного для синхронизации внутренних часов компьютера с серверами точного времени, високосная секунда может быть обработана тремя разными способами. Система может посчитать два раза последнюю секунду одного часа или первую следующего, либо просто "вырубиться" на одну секунду и не выдавать никаких ответов на внешние запросы. Схематично это многообразие можно изобразить примерно так:
23:59:58 23:59:58 23:59:58
23:59:59 23:59:59 23:59:59
23:59:59 00:00:00 --:--:--
00:00:00 00:00:00 00:00:00
00:00:01 00:00:01 00:00:00
Разница в одну секунду между двумя связанными системами в некоторых случаях может оказаться фатальной.
Более наглядным примером концептуального изъяна високосных секунд является случай UNIX-времени, являющегося базовым для Mac OS X, операционных систем на базе ядра Linux и программ, написанных на языках С и C++. Фактически эта система времени отсчитывает количество секунд, прошедших с начала "эры UNIX" - 00:00:00 1 января 1970 года UTC. Високосные секунды обрабатываются по строго определенным правилам, но при этом в итоговой "сумме" не учитываются. В результате, например, разность 1341100801 - 1341100799 из-за високосной секунды формально должна быть равна не 2, а 3.
Правила обсчета секунды координации UNIX-времени ("обычную" секунду предваряет високосная) приводят к прыжку во времени назад на одну секунду, что также теоретически может стать причиной различных сбоев.
1341100799.00
1341100799.50
1341100800.00
1341100800.50
1341100800.00
1341100800.50
1341100801.00
Все это привело к тому, что временная шкала, претендующая на роль универсальной и исторически созданная для облегчения навигации, либо была проигнорирована современными навигационными системами (как в случае с GPS), либо создала им определенные сложности (как в случае с ГЛОНАСС). Разработчики GPS не стали связываться с високосными секундами и создали собственную временную шкалу, синхронизировав время с UTC всего один раз - в 1980 году при запуске (поэтому постоянная разница между временем GPS и TAI составляет 19 секунд). Проектировщики ГЛОНАСС рискнули и доверились UTC, в итоге добавление координационной секунды в ночь с 30 июня на 1 июля 1997 года и дополнительная корректировка внутренних часов привели к недоступности навигационной системы для пользователей на сутки. Разработка и ввод в строй новых навигационных систем с внутренними временными шкалами по сути повторяет ситуацию с морскими картами с собственными системами координат с той лишь разницей, что пересчет координат теперь можно доверить бортовому компьютеру или навигатору.
Осознание проблем, создаваемых високосными секундами, привело к попыткам придумать, как с ними справиться. Простейшим выходом было бы отсрочить решение задачи и переложить ее на плечи будущих поколений, введя вместо секунды координации високосный час: по разным расчетам, учитывающим постепенное замедление вращения Земли вокруг своей оси, 3600 високосных секунд могли бы набежать как за 550, так и за 900 лет. Другим "очевидным" решением могло бы стать очередное переопределение секунды, но это повлекло бы за собой необходимость пересмотра всех физических единиц измерения, зависящих от времени.
В итоге был выбран вариант с вынесением нового определения UTC, из которого предлагалось просто исключить упоминание о високосных секундах. Вследствие чего UTC должно было стать равно TAI с постоянным, навсегда (ну или по крайней мере до нового пересмотра) зафиксированным смещением во времени. С данной инициативой выступили США, основным противником изменений стала Великобритания, жители которой до сих пор в обиходе именуют UTC своим родным GMT (в случае принятия нового определения универсального координированного времени оно кардинально разошлось бы со средним временем по Гринвичу). Голосование среди представителей 192 стран - участников Международного союза электросвязи планировалось провести в ходе Всемирной конференции радиосвязи, открывшейся 23 января в Женеве. В случае, если предложение набрало бы более 70 процентов голосов, то новое определение UTC вступило бы в силу 1 января 2018 года, а до тех пор планировалось продолжать учет високосных секунд. Но в итоге 19 января 2012 года на предварявшей открытие конференции Ассамблее радиосвязи рабочая группа решила отложить вынесение вопроса на голосование на три года, чтобы успеть проработать все технические аспекты отмены високосных секунд.
Пока ученые-"временщики" спорят о судьбе UTC, прикладные специалисты потихоньку отучают себя и окружающих от использования високосных секунд. Так, черновой вариант спецификации языка гипертекстовой разметки HTML5 не предусматривает возможности отображения високосных секунд. Это не значит, что запрещается их учитывать, но как с ними работать - какое значение ставить атрибуту datetime
при обверстке тэгом хотя бы в рамках данного текста - непонятно.
На проблему определения стандартного времени можно взглянуть под другим углом. Каждая новая високосная секунда - это примерно два миллиона человеко-часов, распределенных между всем населением планеты Земля. Декабрьско-январские дополнительные секунды лишь увеличивают время празднования Нового года, а вот с летними дело обстоит иначе. Если в европейской части России они уходят на сон, то для жителей Восточной Сибири и Дальнего Востока високосные секунды вполне могут оказаться "трудовыми". Новое определение UTC должно помочь установлению социальной справедливости.
P.S. Следующая синхронизация "земного" и "стандартного" времени уже запланирована на лето этого года. У вас будет шанс самим оценить степень надуманности проблемы и способность существующих систем распознать високосную секунду и обработать ее. Например, попробуйте дозвониться 1 июля 2012 года в 03:59:60 по Москве в службу точного времени.