time.mktime
вызывает базовую функцию mktime
из библиотеки C. платформы. Например, вышеприведенный код, который вы опубликовали, отлично работает для меня в Mac OS X, хотя он возвращает отрицательное число, так как дата предшествует эпохе Unix. Так что причина в том, что реализация вашей платформы mktime
, вероятно, не поддерживает даты до эпохи Unix. Вы можете использовать модуль Python datetime
для создания объекта datetime
, соответствующего вышеуказанной дате, вычесть его из другого объекта datetime
, который представляет эпоху Unix, и использовать вычисленный объект timedelta
, чтобы получить количество секунд с эпоха:
from datetime import datetime
epoch = datetime(1970, 1, 1)
t = datetime(1956, 3, 2)
diff = t-epoch
print diff.days * 24 * 3600 + diff.seconds
Обновление : если вы используете Python 2.7 или выше, вы можете просто использовать print diff.total_seconds()
, как отмечено ниже в комментарии Чада Миллера.