最近在计算两个时间字符串的差值,会用到datetime模块
在这个模块中,提供计算天数、秒和总秒数的差值计算。
计算天数间隔
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)
输出结果
1
计算秒数间隔
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)
输出结果:
3706
等等,好像不对3600秒是一个小时,这两个时间好像差了一天。
对的,原因在于seconds只能计算同一天的间隔,所以事先要计算出差值的天数,用天数144060+秒数才能得到正确的结果
所以对于这种情况一般使用total_seconds()来解决
print(diff.total_seconds())
输出结果:
90106.0
计算分钟间隔
在datetime中没有专门的模块来计算分钟间隔,因此需要用秒数进行换算,由于我们目前的工程计算中不需要很精确的分钟数据,所以可以直接取整。
print(diff.total_seconds()//60)
输出结果:
61
注:如果用一个小的时间减去大的时间,使用//运算后就会得到一个负整数,比如-61,也是符合我们设计要求的
网友评论