При конвертации базы из UTM4 в UTM5 с помощью to_utm.pl возникла следующая ошибка:
Converting traffic history...Day too big - 25465 > 24855
Sec too small - 25465 < 83752
Sec too big - 25465 > 22447
Cannot handle date (0, 0, 22, 21, 8, 2039) at ./to_utm.pl line 770
И тут я и столкнулся напрямую с проблемой 2039 года, точнее 19 января 2038 года.
Суть «Проблемы 2038» заключается в том, что для хранения значения времени используются 32 двоичных разряда, следовательно, максимальное значение переменной равно 2 в 31-й степени минус 1, то есть 2 147 483 647. И момент, когда наступит переполнение, выпадает на 19 января 2038 года. Очевидно это ошибка прокаралась в мою старую базу но все равно не приятно и решать надо.
Решение:
Специально для этих целей уже есть perl модуль Time::Local::Extended который нам и нужно установить. После установки модуля правим to_utm.pl в строке 9:
Код: Выделить всё
use Time::Local;
заменяем на
use Time::Local::Extended qw(:ALL);
