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()
按照Chad Miller的注释中的说明进行操作。