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

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 или что там в вашем любимом языке.

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


Главное
Шамиль Газибегов
30 Ноя '20
2 234 
Новый флагман OnePlus внезапно подешевел в России. Цен ниже нет нигде
Тот случай, когда выгодно приобретать технику в России.
Шамиль Газибегов
30 Ноя '20
2 164 
Хитовые TWS-наушники стоят в России дешевле, чем на Али. Космический вариант за 800 рублей
Да, они реально стоят 10 баксов.
Андрей Ставицкий
30 Ноя '20
1 369 
Как получить пять месяцев в Apple Music бесплатно? Нужно всего лишь установить Shazam
Даем Apple Music шанс.
Шамиль Газибегов
28 Ноя '20
25 548 
Цена на Google Pixel 4a упала ниже психологической отметки. Это самый выгодный камерофон?
Похоже, что да.
Шамиль Газибегов
28 Ноя '20
3 950 
Уникальный Samsung Galaxy сейчас стоит как самый дешевый iPhone 12 mini. Брать или нет?
Жирнейший дискаунт.
Шамиль Газибегов
28 Ноя '20
8 063 
iPhone X с бесконечной памятью исчезает из магазинов. Берите, пока не поздно
Оптимальное iOS-решение за 530$.
Комментарии