Вы не задумывались, откуда ваш компьютер или смартфон знает который час? Даже в тех ситуациях, когда недоступен Интернет или отключено устройство? Между тем, со временем в цифровых устройствах связано много интересного. О секундах и проблеме 2038 года - в нашей статье.
Время в девайсах хранится в количестве секунд, которые отсчитываются с 1 января 1970 года - начало “эры UNIX”. Это система описания времени, которая определяется как отсчёт секунд начиная с этой даты. Например, сейчас 16:00, 4 апреля 2018 года, если перенести это в формат компьютера, то получится 1522850400 секунд с начала “эры UNIX”. Очень большое число, не так ли?
Если придерживаться такого исчисления времени, то у него существуют свои “круглые” даты. Например, 14 июля 2017 года в 02:40 было ровно 1 500 000 000 секунд с начала эры UNIX.
19 января 2038 года в 03:14:08 по всемирному времени количество секунд во многих системах достигнет максимума, ограниченного программой. В старых 32-битных системах используется тип данных time_t для хранения секунд в виде signed int (32-битного целого со знаком). Самая поздняя дата, которая может быть представлена таким форматом— это 03:14:08, вторник, 19 января 2038 года. Это распространяется только на 32-битные системы(наши с вами современные ноутбуки и смартфоны это не коснется). Тем не менее, многие компьютеры в нашем мире до сих пор работают на такой системе. И если их не заменить на более новые, 64-битные, то после 19 января 38-го года время на таких устаревших системах может ошибочно интерпретироваться как отрицательное, как бы закольцевав таким образом время (поскольку отрицательное число может быть воспринято программами как время в 1970 или 1901 году, в зависимости от реализации). Это приведет ко многим проблемам, особенно в расчетах. В настоящий момент над этой проблемой работают, да и прогресс не стоит на месте.
Также жертвами такого UNIX-исчисления стали не так давно 64-битные iOS-устройства. Если на таких перевести время на час ночи 1 января 1970 года, оказаться в часовом поясе +1:30 UTC и перезагрузить устройство, то оно превращается в “кирпич”, не будет включаться и реагировать на нажатия кнопок, а на дисплее будет светиться логотип Apple. Происходит это из-за разницы в часовых поясах и вы, наверное, помните новости об этом. В настоящий момент разработчики купертиновской компании внесли изменения и начиная с версии iOS 9.3.1 проблема неактуальна.
Вот такие интересные повороты, связанные со временем в наших гаджетах. Существует еще атомарное время, но оно работает намного сложнее и это тема отдельной статьи.
Ваша Техподдержка