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_isds
t 是否为夏令时(-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)可用于时间逻辑判断(如年份、小时范围等)。

点赞有美意,赞赏是鼓励