最近在計算兩個時間字符串的差值,會用到datetime模塊
在這個模塊中凯力,提供計算天數(shù)催蝗、秒和總秒數(shù)的差值計算酥泞。
計算天數(shù)間隔
from datetime import datetime,timedelta
a1='2017-10-07 09:01:04'
a2='2017-10-05 10:02:50'
test1=datetime.strptime(a1, "%Y-%m-%d %H:%M:%S")
test2=datetime.strptime(a2, "%Y-%m-%d %H:%M:%S")
diff=test2-test1
print(diff.days)
輸出結(jié)果
1
計算秒數(shù)間隔
from datetime import datetime,timedelta
a1='2017-10-04 09:01:04'
a2='2017-10-05 10:02:50'
test1=datetime.strptime(a1, "%Y-%m-%d %H:%M:%S")
test2=datetime.strptime(a2, "%Y-%m-%d %H:%M:%S")
diff=test2-test1
print(diff.days)
輸出結(jié)果:
3706
等等,好像不對3600秒是一個小時芽死,這兩個時間好像差了一天咕晋。
對的,原因在于seconds只能計算同一天的間隔收奔,所以事先要計算出差值的天數(shù)掌呜,用天數(shù)144060+秒數(shù)才能得到正確的結(jié)果
所以對于這種情況一般使用total_seconds()來解決
print(diff.total_seconds())
輸出結(jié)果:
90106.0
計算分鐘間隔
在datetime中沒有專門的模塊來計算分鐘間隔,因此需要用秒數(shù)進(jìn)行換算坪哄,由于我們目前的工程計算中不需要很精確的分鐘數(shù)據(jù)质蕉,所以可以直接取整。
print(diff.total_seconds()//60)
輸出結(jié)果:
61
注:如果用一個小的時間減去大的時間翩肌,使用//運算后就會得到一個負(fù)整數(shù)模暗,比如-61,也是符合我們設(shè)計要求的