time 模块是 Python 标准库中用于处理时间、延时、时间戳和格式化时间的底层工具模块。它主要提供了与 Unix 时间戳(1970 年 1 月 1 日以来的秒数)相关的操作方法,适合需要与操作系统或 C 标准库时间接口打交道的场景。
常见应用场景:
(1)获取当前时间戳或格式化时间。
(2)延时等待或暂停程序执行。
(3)计算函数运行耗时(性能分析)。
(4)将时间在字符串、结构化格式和时间戳之间相互转换。
◆ ◆ ◆
核心概念
时间戳(timestamp):
表示自 1970-01-01 00:00:00 UTC 起至现在所经过的秒数(浮点数)。
时间元组(struct_time):
一种包含 9 个字段的时间结构(年、月、日、时、分、秒等),类比 C 语言中的 tm 结构体。
本地时间(local time):
当前系统设置的时间。
UTC 时间(协调世界时):
与本地时区无关的标准时间。
格式化字符串:
用于表示时间的格式模板,如 %Y-%m-%d %H:%M:%S。
◆ ◆ ◆
应用举例
例 1:获取当前时间戳(秒数)
import time
print("当前时间戳:", time.time())例 2:延时 2 秒
import time
print("开始")
time.sleep(2) # 暂停程序 2 秒
print("结束")例 3:格式化当前时间为字符串
import time
now = time.localtime() # 获取当前本地时间的 struct_time
formatted = time.strftime("%Y-%m-%d %H:%M:%S", now)
print("当前时间:", formatted)例 4:字符串转为时间元组
import time
s = "2025-07-02 12:00:00"
t = time.strptime(s, "%Y-%m-%d %H:%M:%S")
print("时间结构:", t)例 5:计算程序运行耗时
import time
start = time.perf_counter()
for _ in range(1000000):
pass
end = time.perf_counter()
print("耗时:", end - start, "秒")◆ ◆ ◆
常用函数速览
time.asctime([t])
将时间元组 t(默认为当前时间)转为字符串形式,如:'Wed Jul 2 12:00:00 2025'。
参数:t 为 struct_time,可省略
返回:字符串
time.gmtime([secs])
将时间戳 secs 转为 UTC 时间(struct_time)。
参数:时间戳(默认当前时间)
返回:struct_time,类似于一个具名元组,包含以下 9 个字段:
tm_year年(如 2025)
tm_mon月(1 ~ 12)
tm_mday日(1 ~ 31)
tm_hour时(0 ~ 23)
tm_min分(0 ~ 59)
tm_sec秒(0 ~ 59)
tm_wday星期(0~6,星期一为 0)
tm_yday一年中的第几天(1~366)
tm_isdst 是否为夏令时(-1, 0, 1)
time.localtime([secs])
将时间戳 secs 转为本地时间(struct_time)。
参数:时间戳(默认当前时间)
返回:struct_time
time.mktime(t)
将本地时间元组 t 转换为时间戳(反向转换)。
参数:struct_time
返回:float 类型的时间戳
time.perf_counter()
返回性能计时器的高精度时间(适用于性能分析)。
参数:无
返回:float,单位为秒,适合测量程序运行时间差
time.sleep(secs)
暂停程序执行若干秒。
参数:secs 为浮点型或整型秒数
返回:None
time.strftime(format, t)
将时间元组 t 格式化为字符串(常用于输出时间)。
参数:format 为格式字符串;t 为 struct_time
返回:字符串
常用格式代码包括:
%Y:四位年份;%m:月份;%d:日
%H:小时;%M:分钟;%S:秒
time.strptime(string, format)
将格式化时间字符串解析为 struct_time。
参数:字符串、格式字符串
返回:struct_time
time.time()
获取当前时间戳(1970年起的秒数)。
参数:无
返回:float,秒为单位
time.ctime([secs])
将时间戳(默认当前时间)转为人类可读字符串(简化版)。
参数:时间戳(可选)
返回:字符串
◆ ◆ ◆
使用建议与注意事项
1、用 time.time() 获取时间戳,计算秒数差值最方便。
2、用 time.perf_counter() 测量运行时间更精确(尤其是微秒级别)。
3、时间转换常用 localtime ⇄ strftime 与 strptime ⇄ mktime 组合使用。
4、时间元组(struct_time)可用于时间逻辑判断(如年份、小时范围等)。
“点赞有美意,赞赏是鼓励”
热门跟贴