Python常用时间模块(time、datetime、timedelta)使用详解
Python 内置的时间处理主要依赖 time、datetime 与 timedelta 模块。本文梳理各模块的核心函数、参数含义及代码示例,通过时间戳转换、字符串解析格式化以及间隔计算实操,明确不同模块的适用场景,帮助开发者快速实现精准的日期时间逻辑与性能控制。
Python 时间处理核心模块应用场景与参数说明
第一步:按需导入内置模块
Python 处理时间数据无需安装第三方包,直接使用标准库即可。根据实际需求导入对应命名空间:
import time
from datetime import datetime, timedelta
第二步:使用 time 模块进行系统级时间控制
time 模块侧重于底层时间戳获取、线程休眠及结构化时间元组处理,适合日志记录与简单耗时统计。
暂停程序执行:sleep(secs)
secs 为浮点数或整数,指定当前线程挂起的秒数。支持亚秒级精度。
import time
print("开始执行")
time.sleep(2.5)
print('2.5秒后继续执行')
字符串与时间元组互转:strptime 与 strftime
strptime(string, format) 按指定格式将文本解析为 time.struct_time 元组对象;strftime(format[, t]) 则反向将元组格式化为字符串。省略参数 t 时默认使用当前系统时间。
import time
# 解析字符串为时间元组
time_tuple = time.strptime('2025-11-20', '%Y-%m-%d')
print(time_tuple.tm_year, time_tuple.tm_mon) # 输出:2025 11
# 格式化当前时间为字符串(省略 t 参数)
current_time = time.localtime()
print(time.strftime("%Y-%m-%d %H:%M:%S", current_time)) # 2025-11-25 15:12:32
print(time.strftime("%A, %B %d, %Y", current_time)) # Monday, November 25, 2025
常用格式代码对照:
%Y:四位年份 |%y:两位年份%m:月份(01-12) |%B/%b:月份全称/缩写%d:日期(01-31) |%A/%a:星期全称/缩写%H:24小时制 |%I:12小时制 |%M:分钟 |%S:秒%p:AM/PM |%j:一年中的第几天 |%c:完整日期时间标准格式
获取时间戳与本地时间:time() 与 localtime()
time.time() 返回自 1970-01-01 00:00:00 UTC 起经过的浮点秒数;time.localtime([secs]) 接收时间戳并转换为本地时区的 struct_time 元组。两者常用于服务器日志对齐与时区转换。
# 获取当前时间戳
timestamp = time.time()
print(f"当前时间戳:{timestamp}")
# 将特定时间戳转为本地元组
specific_time = time.localtime(1633045320)
print(specific_time) # time.struct_time(tm_year=2021, tm_mon=10, ...)
第三步:利用 datetime 与 timedelta 执行日期计算
datetime 提供更高级的对象化日期时间处理,支持直接算术运算;timedelta 专门用于表示两个时间点之间的差值。
文本解析与对象格式化:strptime 与 strftime
通过 datetime.strptime() 可将符合格式的字符串直接转为 datetime 对象。打印该对象时,Python 解释器默认调用其 __str__ 方法显示易读格式;在交互式环境直接输入变量名则调用 __repr__ 显示构造函数格式。开发调试时建议使用 repr() 确认内部状态,业务展示使用 print() 或 .strftime()。
from datetime import datetime
# 解析并查看两种表示方式
random_date = datetime.strptime('2025-10-10', '%Y-%m-%d')
print(random_date) # 2025-10-10 00:00:00 (用户视图)
print(repr(random_date)) # datetime.datetime(2025, 10, 10, 0, 0) (开发者视图)
# 格式化 datetime 对象为自定义字符串
now = datetime.now()
print(now.strftime("%Y年%m月%d日")) # 2025年11月25日
时间间隔创建与计算:timedelta()
timedelta 实例可通过关键字参数定义跨度(weeks, days, hours, minutes, seconds, milliseconds, microseconds)。支持直接加减操作,并通过 .total_seconds() 统一换算总时长。
from datetime import timedelta
# 构造多单位时间间隔
td = timedelta(days=1, hours=2, minutes=30, seconds=15, microseconds=500)
print(td) # 1 day, 2:30:15.000500
# 属性读取与总秒数换算
print(f"总秒数: {td.total_seconds()}") # 198045.0
print(f"总小时数: {td.total_seconds() / 3600}") # 55.0125
第四步:核对输出结果并完成场景选型
- 性能测试/脚本延迟/轻量级日志:首选
time模块,直接操作时间戳与休眠,开销最低。 - 日历计算/周期排期/复杂格式化:使用
datetime配合timedelta,利用对象继承的方法链完成加减天数、校验合法性等操作。
以上就是 Python 常用时间模块(time、datetime、timedelta)的详细使用说明,更多关于 Python 日期时间处理的资料请关注本站其它相关文章!
免责声明:本文内容仅供参考,不代表本站观点。转载或引用请注明出处。









