Python常用时间模块(time、datetime、timedelta)使用详解

陆景行
陆景行
发布时间:2026-10-10| 3人浏览过
原创

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 日期时间处理的资料请关注本站其它相关文章!

相关标签:

免责声明:本文内容仅供参考,不代表本站观点。转载或引用请注明出处。

Python 相关产品和应用

全部下载
Selenium

Selenium

4.51.0 · Windows

用于浏览器自动化和 Web 测试的 Python 工具。

scikit-learn

scikit-learn

1.9.1 · Windows

常用 Python 机器学习算法与模型评估工具库。

Black

Black

26.10.1 · Windows

强调一致性的 Python 自动代码格式化工具。

Ruff

Ruff

0.17.1 · macOS

由 Rust 编写的高速 Python 代码检查和格式化工具。

pytest

pytest

9.1.1 · Windows

简洁而强大的 Python 自动化测试框架。

FastAPI

FastAPI

0.146.0 · Windows

高性能 Python API 框架,支持类型提示和自动接口文档。

Flask

Flask

3.1.3 · Windows

轻量灵活的 Python Web 应用框架。

Django

Django

6.1.2 · Windows

成熟的 Python Web 框架,适合构建内容站点和业务系统。

Spyder

Spyder

6.1.7 · Windows

面向科学计算与数据分析的 Python 集成开发环境。

SciPy

SciPy

1.18.1 · Windows

面向科学、工程和技术计算的 Python 算法库。