2014-03-04 164 views
0

我想计算下面提到的两个不同时间戳之间的差异。我得到的值是25324秒,这比实际的差异要小。这里有什么问题?Python日期时间问题

from datetime import datetime 

time_format = "%Y-%m-%d %H:%M:%S" 

d1 = datetime.strptime('2013-12-12 03:59:33', time_format) 
d2 = datetime.strptime('2013-12-09 20:57:29', time_format) 
print (d1 - d2).seconds 

25324 

回答

5

timedelta对象包含以天,秒和微秒为单位的时间。你必须将它们加在一起才能得到完整的号码。

from datetime import datetime 

time_format = "%Y-%m-%d %H:%M:%S" 

d1 = datetime.strptime('2013-12-12 03:59:33', time_format) 
d2 = datetime.strptime('2013-12-09 20:57:29', time_format) 

diff = d1 - d2 
print diff # 2 days, 7:02:04 
print diff.days * 24 * 60 * 60 + diff.seconds # 198124 

该方法total_seconds()自动做到这一点。

问题是你不能存储一个数字,它可能需要精度超过999999999天到1微秒的范围内同时在一个浮点数,所以它被分成三个整数。