在编写程序时,我们会经常用到时间,有时候是计时,有时候是用来格式化输出时间
像年,月,日,时,分,秒等等。python里面提供了时间库,非常方便我们进行时间相关的操作
一、time库包括三类函数:
时间获取:time(),ctime(),gmtime()
时间格式化:strftime(),strptime()
程序计时:sleep(),perf_counter()
time():获取当前时间戳,即计算机内部时间值,浮点数
>>>time.time()
1516939876.6022282
ctime():获取当前时间并以易读方式表示,返回字符串
>>>time.ctime()
'Fri Jan 26 12:11:16 2018'
gemtime(): 获取当前时间,表示为计算机可处理的时间格式
>>>time.gmtime()
time.struct_time(tm_year=2018, tm_mon=1,
tm_mday=26, tm_hour=4, tm_min=11, tm_sec=16,
tm_wday=4, tm_yday=26, tm_isdst=0)
二、时间格式化:
1.格式化:类似字符串格式化,需要有展示模板
2.展示模板由特定的格式化控制符组成
strftime()方法:
strftime(tpl, ts):tpl是格式化模板字符串,用来定义输出效果;ts是计算机内部时间类型变量
>>>t = time.gmtime()
>>>time.strftime("%Y-%m-%d %H:%M:%S",t)
'2018-01-26 12:55:20'
三、格式化控制符:
%Y:年份 0000~9999,例如:1900
%m:月份 01~12,例如:10
%B:月份名称 January~December,例如:April
%b:月份名称缩写Jan~Dec,例如:Apr
%d:日期 01~31,例如:25
%A:星期Monday~Sunday,例如:Wednesday
%a:星期缩写Mon~Sun,例如:Wed
%H:小时(24h制)00~23,例如:12
%I:小时(12h制)01~12,例如:7
%p:上/下午AM, PM,例如:PM
%M:分钟00~59,例如:26
%S:秒00~59,例如:26
四、时间格式化:
>>>t = time.gmtime()
>>>time.strftime("%Y-%m-%d %H:%M:%S",t)
'2018-01-26 12:55:20'
>>>timeStr = '2018-01-26 12:55:20'
>>>time.strptime(timeStr, “%Y-%m-%d %H:%M:%S”)
五、程序计时
1.程序计时指测量起止动作所经历时间的过程
2.测量时间:perf_counter()
3.产生时间:sleep()
perf_counter():返回一个CPU级别的精确时间计数值,单位为秒由于这个计数值起点不确定,连续调用差值才有意义
>>>start = time.perf_counter()
318.66599499718114
>>>end = time.perf_counter()
341.3905185375658
>>>end - start
22.724523540384666
sleep(s):s拟休眠的时间,单位是秒,可以是浮点数
>>>def wait():
time.sleep(3.3)
>>>wait()#程序将等待3.3秒后再退出
六、例子程序
1 #!/usr/bin/env python3 2 # -*- coding: utf-8 -*- 3 #TextportBarv1.py 4 5 '''import time 6 scale=10 7 print("------执行开始------") 8 for i in range(scale+1): 9 a='*'*i 10 b='.'*(scale-i) 11 c=(i/scale)*100 12 print("{:^3.0f}%[{}->{}]".format(c,a,b)) 13 time.sleep(0.1) 14 print("------执行结束------")''' 15 16 17 #TextportBarv3.py 18 import time 19 20 21 scale=50 22 print("执行开始".center(scale//2,"-")) 23 start=time.perf_counter() 24 for i in range(scale+1): 25 a='*'*i 26 b='.'*(scale-i) 27 c=(i/scale)*100 28 dur=time.perf_counter()-start 29 print(" {:^3.0f}%[{}->{}]{:.2f}s".format(c,a,b,dur),end='') 30 time.sleep(0.1) 31 print(" "+"执行结束".center(scale//2,"-"))