что такое 1970 часов

Заблуждения программистов о Unix-времени

Вчера Дэнни поинтересовался любопытными фактами о Unix-времени, а я вспомнил, что иногда оно работает совершенно неинтуитивно.

Вот эти три факта кажутся в высшей степени разумными и логичными, не так ли?

что такое 1970 часов. Смотреть фото что такое 1970 часов. Смотреть картинку что такое 1970 часов. Картинка про что такое 1970 часов. Фото что такое 1970 часов
Настольные часы 1770-х годов. Собрано Джоном Леру. Из коллекции Wellcome. Опубликовано под лицензией CC BY

У всех трёх заблуждений одна причина: високосные секунды. Если вы не знакомы с дополнительными секундами, вот краткая справка:

Время UTC определяется двумя факторами:

Когда два времени выпадают из синхрона, в UTC добавляется или удаляется секунда, чтобы вернуть синхронизацию. С 1972 года служба IERS (которая управляет этим делом) добавила 27 дополнительных секунд. В результате получилось 27 суток UTC продолжительностью в 86 401 секунду. Теоретически возможно появление суток продолжительностью 86 399 секунд (минус одна). Оба варианта противоречат фундаментальному предположению о Unix-времени.

Время Unix предполагает, что каждый день длится ровно 86 400 секунд (60 × 60 × 24 = 86 400), без всяких дополнительных секунд. Если происходит такой скачок, то время Unix либо перепрыгивает через секунду, либо отсчитывая две секунды за одну. По состоянию на 2019 год в нём отсутствует 27 високосных секунд.

Так что наши заблуждения нужно дополнить следующим образом:

До сих пор на практике секунды никогда не удалялись (и замедление вращения Земли означает, что это маловероятно), но если бы это когда-либо произошло, это означало бы, что день UTC стал на одну секунду короче. В этом случае последняя секунда UTC (23:59:59) отбрасывается.

В каждых сутках Unix одинаковое количество секунд, поэтому последняя Unix-секунда укороченного дня не будет соответствовать никакому времени UTC. Вот как это выглядит, в интервалах по четверти секунды:

что такое 1970 часов. Смотреть фото что такое 1970 часов. Смотреть картинку что такое 1970 часов. Картинка про что такое 1970 часов. Фото что такое 1970 часов

Это уже 27 раз произошло на практике. По окончании суток UTC добавляют дополнительную секунду 23:59:60. В сутках Unix одинаковое количество секунд, поэтому он не может добавить дополнительную секунду — вместо этого приходится повторять метки времени Unix для последней секунды. Вот как это выглядит, в интервалах по четверти секунды:

что такое 1970 часов. Смотреть фото что такое 1970 часов. Смотреть картинку что такое 1970 часов. Картинка про что такое 1970 часов. Фото что такое 1970 часов

Если стартовать в 23:59:60.50 и подождать полсекунды, время Unix возвращается на полсекунды, а метка времени Unix 101 соответствует двум секундам UTC.

Вероятно, это не единственные странности времени Unix — только то, что я вчера вспомнил.

Источник

Android-пользователи «ВКонтакте» пожаловались на пустые сообщения из 1970 года

Пользователи официального приложения «ВКонтакте» для Android сообщают о возвращении пользователя null null и ошибки, приводящей к закрытию мобильного клиента. Всплеск жалоб наблюдается после обновления от 9 февраля 2015 года.

Ошибку вызывает появление пустого сообщения от пользователя null null в диалогах. Попытка открыть его приводит к завершению работы мобильного приложения. Некоторые пользователи социальной сети после экстренного завершения работы отмечают пропажу других диалогов.

Пользователи соцсети предположили вирусное происхождение ошибки, но это уже опроверг руководитель пресс-службы «ВКонтакте» Георгий Лобушкин. «Проблема возникает при обращении к серверу через медленный мобильный интернет. Исправление ошибки затруднено ее редкостью и тем, что ее почти невозможно воспроизвести. Но отдел разработки уже ищет решение», — сказал он.

Представитель соцсети добавил, что впервые столкнулся с такой ошибкой только сейчас. Однако поиск показал, что пользователи мобильной версии официального приложения «ВКонтакте» для Android уже жаловались на похожие симптомы осенью 2014 года. В конце января 2015-го об аналогичном поведении сообщили бета-тестировщики неофициального мобильного клиента Candy. В некоторых случаях сообщение от null null появлялось после удаления диалогов.

Ник null null является именем пользователя «по умолчанию», когда не введены ни имя, ни фамилия, а 1 января 1970 года — это дата, от которой ведется исчисление так называемого UNIX-времени, иногда также называется «компьютерным временем».

Источник

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *