每天学习一个Python库之时间库(time)
标准库是Python自带的库,无须下载,可直接使用。通过下面代码可以查看标准库的目录地址。import sys以上就是Python的安装目录地址,而标准库的目录地址就在lib文件夹中。
目录
简介
在 Python 的广阔世界里,时间处理是一项基础且至关重要的技能,无论是日志记录、任务调度,还是数据时间戳分析,都离不开对时间的精准操控。而 “时间库” 作为 Python 中处理时间相关操作的核心工具集合,包含了诸如time、datetime、calendar等多个实用库,它们各自有着独特的功能和应用场景。 “每天学习一个 Python 库 — 时间库” 系列博客,正是为了帮助大家系统、深入地掌握这些时间库而诞生的。因此,在这个系列中,我们将每天聚焦一个具体的库,从基础的函数用法讲起,逐步深入到实际应用案例。
1.标准库
1.标准库介绍
标准库是Python自带的库,无须下载,可直接使用。通过下面代码可以查看标准库的目录地址。
import sys
print(sys.exec_prefix)
C:\Users\DELL\AppData\Local\Programs\Python\Python39
以上就是Python的安装目录地址,而标准库的目录地址就在lib文件夹中
2.标准库的导入
import time #导入整个time库
from time import sleep #导入time库中的sleep函数
from time import * #导入time库中的全部函数
import time as t #导入整个time库,并且定义别名为t
当你想导入一个库时,例如使用import water导入这个库。Python会自动按照以下步骤进行搜索。
(1.) 优先在代码所在文件央中搜索是否存在名为water.py的代码文件。如果不存在则执行下一个搜索步骤。
(2.) 搜索Python安装路径下的Lib目录(含标准库)中是否存在名为 water.py的代码文件。如果不存在执行下一个搜索步骤。
(3.) 搜索Python安装路径下的Lib目录中的s ite-packages目录(即第三方库目录)中是否存在名为water.py的代码文件。如果搜索到对应的代码文件,则可以继续使用代码文件中的函数或类方法。如果仍然搜不到文件则会出现如下报错信息,表明没有找到名为water的模块。
2.时间库
Python标准库中的time库主要用于获取当前时间和设置时间的格式,在使用time库之前需要使用import将time库带入代码文件
1.获取时间戳
时间戳表示当前时间与1970年1月1日0时0分0秒到时间差(以秒为单位),可以使用time库中的time()函数来获取。
import time #时间戳,当前时间与1970年1月1日0时0分0秒的时间差
a = time.time()
print(a)
# 运行结果为:1752137285.4044664
一个程序是否优良可以通过其运行的稳定性和运行速度来判定,time()方法不仅可以检测程序代码在何时被执行,还可以测量程序的运行速度。
import time
start = time.time()
i = 1
while i<100000000:
i += 1
end = time.time()
print('代码启动时间:',start,'\n停止时间:',end,'\n执行时间:',end-start)
# 代码启动时间: 1752146192.2039964
# 停止时间: 1752146197.1724012
# 执行时间: 4.968404769897461
2.I/O操作
如果在上面程序while循环中加入print语句,就会发现运行时间大大增加了。因为print()语句在输出信息时需要CPU进行I/O(input和print)操作,需要消耗的时间就会增多。
import time
start = time.time()
i = 1
while i<10000000:
i += 1
print(i) #时间消耗非常大
end = time.time()
print('代码启动时间:',start, '\n停止时间:',end,'\n执行时间:',end-start)
#运行结果:
#代码启动时间: 1752146422.7530127
#停止时间: 1752146489.4584126
#执行时间: 66.70539999008179
而如果创建一个文本用于保存循环过程中的写入的数据,就会发现时间消耗的比print()语句减少很多。
import time
with open('o.txt','w') as f:
start = time.time()
i = 1
while i<10000000:
i += 1
f.write(str(i))
end = time.time()
print('代码启动时间:',start, '\n停止时间:',end,'\n执行时间:',end-start)
# 运行结果为代码启动时间: 1752146798.9920173
# 停止时间: 1752146802.5772362
# 执行时间: 3.585218906402588
3.获取时间
(1.)localtime()函数
localtime()函数用于获取本地当地时间,使用形式如下:
localtime(seconds=None)
参数seconds:值可以为None或时间戳值。如果为None表示获取本地当前时间,如果为时间戳值表示将时间seconds转换为本地当地时间。
返回值:struct.time数据对象。 struct time数据对象是Python内置数据类型,其形式类似于元组,其中元素tm-year表示年份、 tm_mon表示月份tm_mday表示日期、tm_hour表示小时tm_min表示分钟、 tm_sec表示秒、tm wday表示星期(0表示星期一,1表示星期二以此类推)、 tm-yday表示这一年的第几天、 tm isdst表示时间是否为夏令时(0表示非夏令时,1表示夏令时)
import time
a= time.localtime()#获取本地当前时间。
print(a) #struct_time数据对象
print(list(a))
b = time.localtime(1622874693.6661327)#将时间戳转换为本地时间
print(b)
运行结果为:
time.struct_time(tm_year=2025, tm_mon=7, tm_mday=10, tm_hour=19, tm_min=35, tm_sec=53, tm_wday=3, tm_yday=191, tm_isdst=0)
[2025, 7, 10, 19, 35, 53, 3, 191, 0]
time.struct_time(tm_year=2021, tm_mon=6, tm_mday=5, tm_hour=14, tm_min=31, tm_sec=33, tm_wday=5, tm_yday=156, tm_isdst=0)
(2.) gmtime()函数
gmtime0)函数用于获取UTC(Universal Time Coordinated,世界协调时,又称世界标准时间。中国的时间与世界标准时间相差8个小时)时间。其使用形式如下:
def gmtime(seconds=None)
参数seconds:值可以为None或时间戳值。如果为None表示获取当前UTC时区(0时区)的时间,如果为时间戳值表示将时间戳转换为UTC时区(0时区)的时间。
返回值: struct_time数据对象。
import time
a= time.gmtime() #获取UTC时间
print(a)
# 运行结果为:time.struct_time(tm_year=2025, tm_mon=7, tm_mday=10, tm_hour=11, tm_min=40, tm_sec=51, tm_wday=3, tm_yday=191, tm_isdst=0)
(3.) ctime()函数
ctime()函数用于获取字符串形式的时间。其使用形式如下:
ctime (seconds-None)
参数seconds:值可以为None或时间戳值。如果为None表示获取字符串形式的当前时间,如果为时间戳值表示将时间戳转换为字符串形式的时间。
返回值:字符串,形式为星期 月份 日期小时:分钟:秒年份,值均用英文和数字表示。
import time
a= time.ctime() #获取字符串形式的时间值
print(a)
#运行结果:Thu Jul 10 19:44:18 2025
4.时间格式的转换
时间格式转换可以将不同的格式的时间表示进行转换
(1.)mktime()函数
mktime()函数用于将struct. time对象变量转化为时间戳。其使用形式如下:
mktime(p_tuple)
参数p_tuple:为struct_time对象,参数必须给出,否则会抛出错误。
import time
print(time.localtime())
print(time.mktime(time.localtime()))#将struct_time对象变量t转化为时间戳
# time.struct_time(tm_year=2025, tm_mon=7, tm_mday=10, tm_hour=19, tm_min=57, tm_sec=32, tm_wday=3, tm_yday=191, tm_isdst=0)
# 1752148652.0
(2.)strftime()函数
mktime()函数用于将struct. time对象变量转换为格式化的字符串。其使用形式如下:
strftime(format,p_tuple=None)
参数format:根据format格式定义输出时间。下表所示的内容为strfime()中的format格式化字符串,format格式化字符使用第1列中的格式化字符串表示,表格第2列和第3列分别为对应格式化字符串的解释、值范围和实例。
格式化字符串 | 解释 | 值范围和实例 |
---|---|---|
%Y | 年份 | 0001 - 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 | 小时(24 小时制) | 00 - 23,例如 12 |
%I | 小时(12 小时制) | 01 - 12,例如 7 |
%p | 上午 / 下午 | AM,PM,例如 PM |
%M | 分钟 | 00 - 59,例如 26 |
%S | 秒 | 00 - 59,例如 26 |
参数p_tuple:为struct_time对象,函数根据format参数将struct. time对象转换为对应的格式化字符串,如果p-tuple未指定则默认传入time.localtime()。如果p tuple中的任何一个元素越界,代码程序将会出ValueError。
import time
a = time.localtime()
b= time.strftime('%Y-%m-%d-%H:%M:%S',a)#将struct_time对象转换为格式化的字符串
print(a,'\n',b)
# 运行结果为:time.struct_time(tm_year=2025, tm_mon=7, tm_mday=10, tm_hour=20, tm_min=5, tm_sec=28, tm_wday=3, tm_yday=191, tm_isdst=0)
# 2025-07-10-20:05:28
(3.)strptime () 函数
strptime () 函数用于把一个格式化时间字符串转化为 struct_time 数据对象(与 strftime () 互
其使用形式如下:
strptime (string, format)
参数 string:为字符串,与 strftime () 函数输出的字符串相同,例如 '2021-09-30 12:36:19'。
参数 format:生成参数 string 时所需的格式,与 strftime () 函数中的 format 参数相同。
import time
a = time.strptime('2021-09-30','%Y-%m-%d')#把一个格式化时间字符串转化为struct_time数据
print(a)
# 运行结果为:time.struct_time(tm_year=2021, tm_mon=9, tm_mday=30, tm_hour=0, tm_min=0, tm_sec=0, tm_wday=3, tm_yday=273, tm_isdst=-1)
5.时间休眠
当要让代码程序在执行前等待一段时间,可以使用 sleep (参数) 来实现,其中参数为程序休眠的时可以是小数或整数,单位为秒。
import time
time.sleep(10)
print('此消息10秒后输出')
#运行结果:此消息10秒后输出
第 2 行代码设置程序休眠 10 秒钟,即在 10 秒后才开始执行第 3 行代码

GitCode 天启AI是一款由 GitCode 团队打造的智能助手,基于先进的LLM(大语言模型)与多智能体 Agent 技术构建,致力于为用户提供高效、智能、多模态的创作与开发支持。它不仅支持自然语言对话,还具备处理文件、生成 PPT、撰写分析报告、开发 Web 应用等多项能力,真正做到“一句话,让 Al帮你完成复杂任务”。
更多推荐
所有评论(0)