Веб и кодирование
Проблема 2038 года (Y2K38): переполнение 32-битного времени Unix
Проблема 2038 года возникнет, когда знаковый 32-битный счетчик секунд Unix превысит свое максимальное значение 2 147 483 647.
Опубликовано
Критический момент: 19 января 2038 года
В 03:14:07 UTC значение time_t достигнет максимума 2^31 - 1.
Решение проблемы
- Миграция на 64-битные типы данных времени (time_t 64-bit).
- Обновление типов колонок в базах данных (с INT4 на BIGINT / INT8 / TIMESTAMP).
- Аудит встроенных систем и сетевых протоколов со статическими форматами пакетов.
Проверьте пример
Преобразуйте максимальную 32-битную секунду со знаком
Это последняя положительная секунда, представимая 32-битным целым со знаком.
2147483647Ожидаемый результат: Результат UTC: 2038-01-19 03:14:07.
Проверьте пример
Преобразуйте следующую секунду
Современный конвертер представляет это значение, хотя 32-битная система со знаком уже не может.
2147483648Ожидаемый результат: Инструмент показывает соседний момент времени, а гайд объясняет границу переполнения старых систем.
Проверьте таймстамп
Конвертер меток времени
Проверьте поведение граничных дат 2038 года в Unix Timestamp Converter.