Python第24课:时间的表达和计算
时间 2019-02-21 下午3:30
主讲 刘培富
地点 四楼电教室
一、模块time
1.获取当前时间
import time
sj=time.localtime(time.time())
print(sj)
print(sj.tm_year)#年
print(sj.tm_mon)#月
print(sj.tm_mday)#日
print(sj.tm_hour)#时
print(sj.tm_min)#分
print(sj.tm_sec)#秒
print(time.strftime("%Y-%m-%d %H:%M:%S", time.localtime())) #获取系统当前时间,格式是:2019-02-21 15:43:25
以上,获取了当前的年、月、日、时、分、秒。
输出当前时间,也可以简写为:print(time.strftime('%Y-%m-%d %H:%M:%S'))
2.时间等待
time.sleep(x) #等待x秒,可以使用小数
3.时间比较
import time
def Fuctime(s):
if time.strftime('%Y-%m-%d %H:%M:%S',time.localtime(time.time()))>s:
return True
else:
return False
if Fuctime('2016-12-05 00:00:00'):
print("比当前时间小")
else:
print("比当前时间大")
注意,以上两个时间可以比较,不可相减。
二、模块datetime
1.输出当前时间:
datetime.datetime.today().strftime('%Y-%m-%d %H:%M:%S')
得到的结果,与time模块相同。
2.计算时间差:
import datetime,time
starttime = datetime.datetime.now()
endtime=datetime.datetime.strptime('2019-02-21 21:18:22', '%Y-%m-%d %H:%M:%S')
x=(endtime - starttime).total_seconds()
print(starttime)
print(endtime)
print(x)
3.秒换算成时分秒
def sfm(miao):
m, s =divmod(miao, 60)
h, m =divmod(m, 60)
return "%02d时%02d分%02d秒" % (h, m, s)
print(sfm(3661))
4.求当前时间是星期几
import datetime
today = datetime.date.today()
week=today.isoweekday()
print(today)
print(week)
yesterday = today - datetime.timedelta(days=4)
week=yesterday.isoweekday()
print(yesterday)
print(week)
5.日期加1天
a="2018-03-01"
a2=datetime.datetime.strptime(a, '%Y-%m-%d').date() #转换日期型
a3=(a2+datetime.timedelta(days=1)).strftime("%Y-%m-%d")
print(a3)
返回:"2018-03-02"
6.求日期区间内的任意时间:
import datetime,random
def randomtimes(start, end, n, frmt="%Y-%m-%d"):
stime = datetime.datetime.strptime(start, frmt)
etime = datetime.datetime.strptime(end, frmt)
return [random.random() * (etime - stime) + stimefor _in range(n)]
x=randomtimes('2011-06-01','2018-12-01',30)
for i in x:
print(i.strftime("%Y-%m-%d"))