python计算时间差是需要引入时间包的而且不能使用字符串之间相减
例如:
t1 = "2020-11-05 09:49:32"
t2 = "2020-11-05 21:03:54"
t3 = t2 -t1
时间相减
是不可以之间相减的,需要转换成时间格式;
算了之间上代码了;
import datetime
def test():
t1 = "2020-11-05 09:49:32"
t2 = "2020-11-05 21:03:54"
t1 = datetime.datetime.strptime(t1,'%Y-%m-%d %H:%M:%S')
t2 = datetime.datetime.strptime(t2,'%Y-%m-%d %H:%M:%S')
t3 = (t2 -t1).seconds
print(t3)
test()
这样子算出来的是秒
想要转换成分钟除以60就可以了,转换成小时除3600
想转换成天可以
t3 = (t2 -t1).days
时间排序
对于时间在一个list中也是可以排序的,使用sort就可以了
t1 = "2020-11-05 09:49:32"
t2 = "2020-11-05 21:03:54"
t3 = "2020-11-06 09:03:54"
t1 = datetime.datetime.strptime(t1,'%Y-%m-%d %H:%M:%S')
t2 = datetime.datetime.strptime(t2,'%Y-%m-%d %H:%M:%S')
t3 = datetime.datetime.strptime(t3,'%Y-%m-%d %H:%M:%S')
t = (t2 -t1).seconds
tlist = []
tlist.append(t1)
tlist.append(t2)
tlist.append(t3)
tlist.sort(reverse = False)
print(tlist)
print(tlist[1])
print((tlist[len(tlist) -1] - tlist[0]).seconds)
其中
tlist.sort(reverse = False)
reverse = False#是降序
reverse = True #是升序
时间相加
需要借助函数timedelta,例如加上15分钟,代码
tqw = tlist[0] + datetime.timedelta(minutes=15)
结果:
2020-11-05 10:04:32
多加一天
print (datetime.datetime.now()+datetime.timedelta(days=1)).strftime("%Y-%m-%d %H:%M:%S")
减一天
print (datetime.datetime.now()+datetime.timedelta(days=-1)).strftime("%Y-%m-%d %H:%M:%S")