古い日付以降に費やされた時間を計算するためにいくつかの Python スクリプトに取り組んでいましたが、驚くべきことにマイナスの結果が得られました。time.mktime関数に問題がある可能性があることに気付きました。このコードを取得しましょう:
import time
import datetime
before = datetime.datetime(2010, 10, 17, 0, 0, 0)
after = datetime.datetime(2010, 10, 17, 1, 0, 0)
print "%s = %f" % (before, time.mktime(before.timetuple()))
print "%s = %f" % (after, time.mktime(after.timetuple()))
私の Linux 32 ビット Python 2.6.4 では、出力は次のようになります。
2010-10-17 00:00:00 = 1287284400.000000
2010-10-17 01:00:00 = 1287284400.000000
異なる時間の同じタイムスタンプ! 私は何か間違ったことをしていますか?