Мультфильм – Почему 1970 год? или Проблемы со Свиданиями


Мультфильм xkcd на этой неделе может стать проблемой, если у вас никогда не было проблем с датами. Однако, если у вас никогда не было никаких трудностей с датами, это говорит о том, что вам никогда не приходилось работать с датами, поскольку даты обычно означают проблемы.

Во – первых, какое отношение к этому имеет 1970 год?

Ответ-Unix.

Операционная система Unix была огромным достижением с точки зрения того, что вы могли бы сделать с небольшим компьютером. Linux является прямым потомком Unix, и большинство других операционных систем, используемых в настоящее время, многим обязаны Unix. В результате важно, как Unix отслеживает время.

Система времени и даты Unix работает, просто считая секунды с 1 января 1970 года, который известен как эпоха Unix.

Вы можете догадаться, что 1970 год был годом создания Unix – более или менее.

Если вы хотите быть точным, то эпоха Unix-это 00:00:00 в четверг, 1 января 1970 года по UTC, а время Unix-это количество секунд, прошедших без учета високосных секунд.

Таким образом, используя систему даты/времени Unix, вы можете работать только с датами/временем после 1970 года?

Это не совсем так, и мультфильм рисует немного пессимистичную картину. Дата/время Unix-это 32-разрядное число со знаком, поэтому вы можете использовать отрицательные секунды, которые дают даты и время до 1970 года. Использование самого большого 32-битного отрицательного числа дает дату пятницы 13 декабря 1901 года в качестве самой ранней даты Unix, и поэтому мультфильм действительно должен гласить “Странно – мой код падает, когда заданы даты до 1901 года”, но, по-видимому, рассматриваемая программа работала только с положительными значениями.

Как вы можете догадаться, если есть самая ранняя дата Unix, то есть и самая последняя. Самое большое положительное 32-разрядное целое число представляет собой дату вторника 19 января 2038 года – и после этого времени все метки времени Unix перевернутся и будут выглядеть как даты 1901 года.

Это “Проблема 2038 года”, и многие думают, что это гораздо большая проблема, чем Ошибка Тысячелетия – то есть перенос на новый век – когда-либо был или мог быть.

Причина в том, что Unix и система времени Unix нашли свой путь во всевозможные места, о которых вы, возможно, и не подумаете, включая встроенные компьютерные системы, такие как стиральные машины и авионика.

Если случится что-то плохое, то 3:14 и семь секунд UTC-это момент, на который стоит обратить внимание.  Конечно, все не так просто, потому что многие программы работают с датами в будущем. Например, системы бронирования начнут делать будущие заказы в 1901 году.


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