@li0ard
JS Dev

UNIX время до 1970 года?

Здравствуйте, недавно работал с одним файлом откуда получил дату закодированную в unix время (4160910004) и сказано что в человеко-читаемом формате это (08.11.1965), однако при использовании онлайн конвертора мне выдает дату 08.11.2101. В чем здесь проблема и как её можно исправить?
  • Вопрос задан
  • 112 просмотров
Решения вопроса 1
Скорее всего, проблема в том, что онлайн-калькулятор ожидает, что число - 64-битное со знаком.
В то время как у тебя число 32-битное без знака, но при преобразовании в знаковое оно будет отрицательным (-134057292)
Например вот такой код на C# выдаёт как раз 1965 год, но не тот день:
var secondsSinceUnixEpoch = unchecked((int)4160910004); // unchecked((int) ...) нужно чтобы игнорировать переполнение.
DateTime.UnixEpoch.AddSeconds(secondsSinceUnixEpoch).ToUniversalTime().Date // 02.10.1965


Так что я подозреваю, что это либо всё-таки не unix-время, либо вы ошиблись с человеко-читаемым представлением.
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
@rPman
и сказано что в человеко-читаемом формате это (08.11.1965)
кто тебе это сказал? в смысле что за приложение?
unix time определен как количество секунд с 01.01.1970 года, и про отрицательное их количество речи не идет

для определения времени до этого события нужно использовать другие стандарты
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы