【发布时间】:2016-05-20 02:39:47
【问题描述】:
以下代码在 Windows 上运行良好,在 Linux[Ubuntu] 上的结果很奇怪。 我的python版本是2.7
from datetime import datetime
from datetime import timedelta
import time
def time_diff(date_str_1, date_str_2):
time_stamp_1 = time.mktime(time.strptime(date_str_1, '%Y-%m-%d-%H-%M-%S'))
time_stamp_2 = time.mktime(time.strptime(date_str_2, '%Y-%m-%d-%H-%M-%S'))
print '==='
print date_str_1,date_str_2
print time_stamp_1,time_stamp_2
delta1 = time_stamp_2 - time_stamp_1
return delta1
print time_diff('2015-11-01-01-00-00', '2015-11-01-01-30-00')
print time_diff('2015-11-01-01-00-00', '2015-11-01-02-00-00')
print time_diff('2015-11-01-01-00-00', '2015-11-01-02-30-00')
print time_diff('2015-11-01-01-00-00', '2015-11-01-03-00-00')
Windows 中的结果
===
2015-11-01-01-00-00 2015-11-01-01-30-00
1446310800.0 1446312600.0
1800.0
===
2015-11-01-01-00-00 2015-11-01-02-00-00
1446310800.0 1446314400.0
3600.0
===
2015-11-01-01-00-00 2015-11-01-02-30-00
1446310800.0 1446316200.0
5400.0
===
2015-11-01-01-00-00 2015-11-01-03-00-00
1446310800.0 1446318000.0
7200.0
Linux 中的结果
===
2015-11-01-01-00-00 2015-11-01-01-30-00
1446364800.0 1446366600.0
1800.0
===
2015-11-01-01-00-00 2015-11-01-02-00-00
1446364800.0 1446372000.0
7200.0
===
2015-11-01-01-00-00 2015-11-01-02-30-00
1446368400.0 1446373800.0
5400.0
===
2015-11-01-01-00-00 2015-11-01-03-00-00
1446368400.0 1446375600.0
7200.0
在 Linux 上 '2015-11-01-01-00-00' 有时是 1446364800.0 然后变成 1446368400.0
这是什么原因?是bug吗?
【问题讨论】: