Я работаю во встроенном, и я думал, что выложу наше решение здесь. Наши системы работают на 32 битах, и то, что мы продаем сейчас, имеет гарантию 30 лет, что означает, что они столкнутся с ошибкой 2038 года. Обновление в будущем не было решением.
Чтобы исправить это, мы устанавливаем дату ядра на 28 лет раньше текущей даты. Это не случайное смещение, 28 лет - это то же самое время, что и дни недели, чтобы снова соответствовать. Например, я пишу это в четверг, и в следующий раз 7 марта будет четверг через 28 лет.
Кроме того, все приложения, которые взаимодействуют с датами в наших системах, возьмут системную дату (time_t), преобразуют ее в пользовательский time64_t и применят смещение 28 лет к правильной дате.
Мы создали специальную библиотеку для этого. Код, который мы используем, основан на этом: https://github.com/android/platform_bionic
Таким образом, с этим решением вы можете легко купить себе дополнительные 28 лет.