python中time库的使用
- 什么是time库?
- 如何使用time库?
- 1)时间获取之time()函数
- 2) 时间获取之ctime()函数
- 3)时间获取之gmtime()函数
- 4)时间格式化之strftime()函数
- 5)时间格式之strptime()函数
- 6)程序计时之sleep()函数
- 7)程序计时之perf_counter()函数
- 举例说明,圆周率的代码运行时间计算
什么是time库?
简单来说time库就是python用来处理时间的标准库。
1.计算机时间的表达。
2.提供获取系统时间并格式化输出的功能。
3.提供系统级精确计时功能,用于程序性能分析。
如何使用time库?
使用import time指令来调用time库,分为时间获取,时间格式化,程序计时三种。
1)时间获取之time()函数
time()函数会获取到一个当前时间的时间戳(时间戳就是从1970年到现在的秒数)并以浮点数形式返回。
>>> import time
>>> time.time()
1589029986.4666603
2) 时间获取之ctime()函数
ctime()函数同样也会获取当前的时间,但是会以一种可读的日期+时间的字符串形式返回。
>>> import time
>>> time.ctime()
'Sat May 9 21:21:07 2020'
3)时间获取之gmtime()函数
gmtime()函数会获取一个计算机可以识别的元组形式,既然是一个元组就可以使用索引的方法。
索引(Index),属性(Attribute),值(value)
0,time_year(年),2020
1,time_mon(月),5
2,time_mday(日),9
3,time_hour(时),13
4,time_min(分),23
5,time_sec(秒),5
6,time_wday(weekday),0~6 0表周日
7,time_yday(一年中有几天),1~366
8,time_isdst(是否为夏令时),默认为-1
>>> import time
>>> time.gmtime()
time.struct_time(tm_year=2020, tm_mon=5, tm_mday=9, tm_hour=13, tm_min=23, tm_sec=5, tm_wday=6, tm_yday=130, tm_isdst=0)
>>>t = time.gmtime()
>>>t[1]
5
4)时间格式化之strftime()函数
将strftime()函数前,先将一下时间元组格式的格式控制符
格式 | 含义 |
%Y | 年份(0~9999) |
%m | 月份(01~12) |
%B | 月份名称(January~December) |
%b | 月份名称小写 |
%d | 日期(01~35) |
%A | 星期(Monday~Sunday) |
%a | 星期缩写(Mon~Sun) |
%H | 小时(24制00~23) |
%I | 小时(12制01~12) |
%p | 上午/下午(AM,PM) |
%M | 分钟(00~59) |
%s | 秒(00~5) |
>>> import time
>>> t = time.gmtime() #获取计算机可以读取的时间
>>> time.strftime("%Y-%m-%d %H-%M-%S",t) #使用时间格式输出
'2020-05-09 13-55-41'
5)时间格式之strptime()函数
strptime()函数是用来取消格式化的
>>>timestr = '2020-05-09 13-55-41'
>>>time.strptime(timestr,"%Y-%m-%d %H-%M-%S")
6)程序计时之sleep()函数
sleep(s)函数用来产生时间函数,s拟休眠时间,单位为秒,可以是浮点数。
def wait():
time.sleep(3.3)
wait()
7)程序计时之perf_counter()函数
perf_counter()函数用来侧脸时间函数
>>> start = time.perf_counter()
>>> end = time.perf_counter()
>>> end - start
11.743633100000011
举例说明,圆周率的代码运行时间计算
from random import random
from time import perf_counter
DARTS = 1000*1000
hits = 0.0
start = perf_counter() #记录开始时间
for a in range(1,DARTS + 1):
x,y = random(),random()
dist = pow(x**2 + y**2,0.5)
if dist <= 1.0:
hits = hits + 1
pi = 4 * (hits/DARTS)
print("圆周率值是:{}".format(pi))
print("运行时间是:{}".format(perf_counter()-start))
>>>圆周率值是:3.143728
运行时间是:0.8613409000000001