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