2014-03-04 220 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微秒的範圍內同時在一個浮點數,所以它被分成三個整數。