Я использую 64-битную систему Ubuntu.
В настоящее время я работаю над проектом, который включает MariaDB. Я планирую внедрить технику меток времени в проекте, чтобы люди получали правильное время для разных часовых поясов.
Я слышал и читал некоторые статьи о проблеме 2038 года для отметки времени. Многие статьи предполагают, что мы используем 64-битную систему, чтобы выиграть «немного» больше времени.
Сколько времени имеет в виду этот «бит»? Достаточно ли долго, чтобы мы могли управлять веб-приложениями до конца? Если это не так, то это как продление на два года, и когда наступит 2040 год, появятся ли у нас приложения, которые не будут работать должным образом?
time_t
целые числа, дадут вам «немного больше времени» - до 15:30:08 в воскресенье, 4 декабря, 292 277 026 596 человек. Надеюсь, что это достаточно долго для вашего заявления;)Ответы:
Хорошо, если есть возможность буквально купить «бит», то есть перейти от 32-разрядного целого числа со знаком к 32-разрядному целому числу без знака, все будет работать на 2106.
Переход на 64 бит "несколько лучше". Вы получаете сотни миллиардов лет разрешения.
И Ubuntu делает это:
Тем не менее, это уровень ОС. Тот факт, что Ubuntu использует 64-битное целое для своего времени, не означает, что MySQL / MariaDB будет использовать его для хранения своих временных меток. Если для вас важны даты после 2038 года, немедленно начните тестирование.
На самом деле, я могу сэкономить вам время. Это все еще сломано. Об этой ошибке сообщалось более десяти лет назад, но ее основной тест все еще не прошел с 64-битным int.
Это даже не хранилище. Это немного жалко.
(И да, это было запущено на MariaDB, версия 10.1)
источник
Не храните это как целое число вообще. Сохраните его как строку даты в формате ISO 8601 . Это стандартный формат, используемый в Интернете.
источник