Максимально понятный гид от Дениса Пешехонова.

14 июля 2017 года в 5:40:00 по Москве произошло знаковое событие: UNIX-время было равно 1 500 000 000. Если бы я пил, предложил бы накатить по 150 за такое дело.

Разъяснение для неайтишников

Компьютерам нужно абсолютное время, которое не зависит от часовых поясов и способа записи, поэтому когда-то решили выражать его вот как: любой момент времени это такое число, сколько секунд прошло с момента [четверг, 01.01.1970 0:00:00 GMT+0] и до него. Если момент был раньше этой даты, то число отрицательное.

Подавляющее большинство программистов хотя бы иногда работают с UNIX-временем. Как правило, в таком виде удобно сохранять разные даты, а для просмотра человеком преобразовывать уже в нужный формат с учётом часового пояса и способа представления (например в США сначала пишут месяц, а потом день; в англоязычном мире распространён 12-часовой формат времени и так далее).

Важно понимать, что UNIX-время одинаковое в один и тот же момент для всех людей на планете. И для всех компьютеров на планете, что ещё важнее.

Только что прошло ровно полтора миллиарда секунд с полуночи (по Гринвичу) 1 января 1970 года. Каждые ~3 года проходит ещё сто миллионов секунд, и второй старший разряд увеличивается на единицу. А ровно два миллиарда будет аж в 2033 году, в среду 18-го мая в 6:33:20 по Москве.

Но есть ещё кое-что любопытное. Существует так называемая «Проблема 2038-го года».

Дело в том, что во многих компьютерах и прочих электронных устройствах, если говорить грубо, целые числа не могут быть больше, чем 2 147 483 647 (или 2^31-1) из-за некоторых технических особенностей.

Если в таком устройстве где-то хранится и используется время, то оно наверняка в UNIX-формате, а это значит, что самый поздний момент, который понимает такой компьютер – вторник, 19 января 2038 года в 3:14:07 GMT+0. Потому что в этот момент пройдёт ровно 2 147 483 647 секунд с начала отсчёта в 1970-м году.


Что же будет дальше?

Техника с этого момента будет жёстко глючить, потому что время в ней зациклено, и при достижении наибольшего допустимого значения оно переместится в наименьшее допустимое: пятница, 13 декабря 1901 года в 20:45:52. Что равно -2 147 483 648 или -2^31. Именно столько секунд прошло между этой датой и первым января 1970-го.

Что делать?

Как пользователь вы можете сделать только одно: не сидеть на старой технике и не использовать старые устройства и программы. А если вы кодер, то сами знаете: никаких int32 на таймстампы, ребята. Только long, Number, int64 или что там в вашем любимом языке.

Источник: страница «ВКонтакте» Дениса Пешехонова

Главное
Шамиль Газибегов
17 Июн '21
1 429 
От iPhone 12 mini избавляются на Маркете. Вариант с гигантской скидкой и подарком
Роскошное предложение.
Вадим Комаров
17 Июн '21
878 
Надо брать. Самый дешевый робот-пылесос с влажной уборкой и хорошим аккумулятором
Товарищ, который избавит вас от лишней работы по дому.
Андрей Ставицкий
16 Июн '21
3 619 
Представленный в мае Asus ZenFone 8 круто подешевел. Скидка просто сказка
Вот это распродажа!
Шамиль Газибегов
16 Июн '21
5 575 
Уникальная ТВ-приставка сейчас стоит исторически дешево. В чем её гениальность?
Вариант для геймеров.
Шамиль Газибегов
16 Июн '21
4 899 
Xiaomi Redmi Note 10 Pro отдают за гроши на Али. Это лучший девайс до 20 тысяч рублей
Подсказываем промокод.
Шамиль Газибегов
16 Июн '21
3 970 
Cамый недооцененный клон AirPods Pro подешевел ниже психологической отметки. Пора брать эти беспроводные наушники
Ниже прайса в России еще не было.
Комментарии