创作原因:
因为项目需求,使项目定时等待到第二天固定时刻再运行,前期使用一次time类型就去直接查找,造成对time类型理解的深度不够。故撰写文章记录学习总结,以防以后忘记。
time和datetime
两种包,datetime使再time之上扩展的,所以简单的如sleep功能可直接使用time。
datetime两种类型
1,datetime:时间的数据格式,内部有时间变量。
2,timedelta:表示两个 date 或者 time 的时间间隔。
datetime格式可直接与datetime和timedelta格式的数据直接进行数据运算,如
t = datetime.datetime.now()
time.sleep(2)
t2 = datetime.datetime.now()
t3 = t2-t
print(t4)
输出大概为:0:00:02.000503,类型为timedelta
t = datetime.datetime.now()
t3 = datetime.timedelta(days=2)
t4 = t-t3
print(t4)
datetime.replace的使用:
# 1,直接使用当前时间为对象
t = datetime.datetime.now().replace(day=2)
# 2,先定义一个当前时间的对象,这种方法可更改相对时间,当月若日期数超出,如七月,day赋值为32,会出现错误,慎用!
t2 = datetime.datetime.now()
t3 = t2.replace(day=t2.day+2)
# 3,直接在括号里面定义,同样也可以更改相对时间。
t4 = datetime.datetime.replace(datetime.datetime.now()+datetime.timedelta(days=2))
datetime.timedelta的使用:
# 直接返回一个timedelta类型的数据,可以直接参与时间的计算
t5 = datetime.timedelta(days=2)
最后,对于在程序执行过程中,遇到某个问题等待到某一固定时刻再运行代码(下面是等待到第二天的十一点):
t = datetime.datetime.replace(datetime.datetime.now()+datetime.timedelta(days=1),hour=11,minute=0,second=0)
time.sleep((t-datetime.datetime.now()).total_seconds())