首页 > 编程笔记

Python time模块及其常用函数

Python time 模块提供了许多和时间有关的功能,在实际编程的过程中,有时会需要计算两个动作或事件间的时间间隔,这时就可以使用 time 模块中的 perf_counter()process_time() 函数来取得程序执行的时间。

time 模块中的常用函数如表 1 所示。
表1 time模块中的常用函数
函数 说明
perf_counter()或 process_time() 较早版本的 time.clock() 函数会以浮点数计算的秒数返回当前的 CPU 时间。
Python 3.3以后不被推荐,建议使用 perf_counter() 或 process_time() 函数代替
sleep(n) 可以让程序停止 n 秒
time() 取得目前的时间数值,Python 的时间是以 tick 为单位的,即百万分之一秒(微秒)。此函数所取得的“时间数值”是从 1970 年 1 月 1 日0 时开始到现在所经历的秒数,精确到小数点后 6 位
localtime([时间数值]) 因为时间数值对用户较无意义,此函数可以取得用户时区的日期及时间信息,并以元组数据类型返回
ctime([时间数值]) 功能和 localtime() 函数类似,但时间以字符串数据类型返回
asctime() 列出目前的系统时间

在举例之前,我们先来说明 localtime([时间数值]) 函数的用法。调用这个函数时,它的“时间数值”参数可以省略。

如果没有传入任何参数,表示该函数会返回目前的日期及时间,并以元组数据类型返回。python 代码如下:

import time as t
print(t.localtime())

输出结果:

time.struct_time(tm_year=2021, tm_mon=9, tm_mday=23, tm_hour=16, tm_min=36, tm_sec=25, tm_wday=3, tm_yday=266, tm_isdst=0)

输出元组数据中各名称的含义如下。
我们再来看另一种 asctime() 函数的使用方法,该函数会列出目前的系统时间,python 代码如下:

import time as t
print(t.asctime ())

输出结果:

Thu Sep 23 16:39:35 2021

示例

下列程序示例中除了示范如何使用Python time模块的常用函数外,也可以清楚地看出“时间数值”参数包含哪些字段及所代表的意义。

python代码如下:
import time as t

print(t.time())
print(t.localtime())

field=t.localtime(t.time())#以元组类型取得数据
print('tm_year= ',field.tm_year)
print('tm_mon= ',field.tm_mon)
print('tm_mday= ',field.tm_mday)
print('tm_hour= ',field.tm_hour)
print('tm_min= ',field.tm_min)
print('tm_mec= ',field.tm_sec)
print('tm_wday= ',field.tm_wday)
print('tm_yday= ',field.tm_yday)
print('tm_isdst= ',field.tm_isdst)

for j in range(9):#以元组的索引值取得数据内容
    print('以元组的索引值取得数据= ',field[j])
           
print("我有一句话想对你说:")
t.sleep(1) #程序停1秒
print("学习Python的过程虽然漫长,但最终的果实是甜美的")
print("程序执行到目前的时间是"+str(t.process_time()))
t.sleep(2) #程序停2秒
print("程序执行到目前的时间是"+str(t.perf_counter()))
输出结果:

1632386531.8154998
time.struct_time(tm_year=2021, tm_mon=9, tm_mday=23, tm_hour=16, tm_min=42, tm_sec=11, tm_wday=3, tm_yday=266, tm_isdst=0)
tm_year=  2021
tm_mon=  9
tm_mday=  23
tm_hour=  16
tm_min=  42
tm_mec=  11
tm_wday=  3
tm_yday=  266
tm_isdst=  0
以元组的索引值取得数据=  2021
以元组的索引值取得数据=  9
以元组的索引值取得数据=  23
以元组的索引值取得数据=  16
以元组的索引值取得数据=  42
以元组的索引值取得数据=  11
以元组的索引值取得数据=  3
以元组的索引值取得数据=  266
以元组的索引值取得数据=  0
我有一句话想对你说:
学习Python的过程虽然漫长,但最终的果实是甜美的
程序执行到目前的时间是0.046875
程序执行到目前的时间是2602284.2166657

程序解说:

优秀文章