time和datetime
Python 中的 time
和 datetime
模块都用于处理时间和日期,但它们的适用场景不同:
time
:主要用于 处理时间戳(timestamp),适用于 计算时间间隔 或 执行睡眠(sleep) 操作。datetime
:用于 处理日期和时间,支持 格式化、运算、转换等。
1. time
模块(处理时间戳)
time
模块主要使用 时间戳(从 1970-01-01 00:00:00 UTC 以来的秒数)。
1.1 获取当前时间戳
import time
timestamp = time.time()
print(timestamp) # 输出类似于:1707361200.123456
1.2 延迟执行(sleep)
print("开始...")
time.sleep(2) # 休眠 2 秒
print("结束")
1.3 格式化时间(strftime
)
time_str = time.strftime("%Y-%m-%d %H:%M:%S", time.localtime())
print(time_str) # 输出类似于:2025-02-08 14:30:00
1.4 解析时间字符串(strptime
)
time_tuple = time.strptime("2025-02-08 14:30:00", "%Y-%m-%d %H:%M:%S")
print(time_tuple) # 输出 time.struct_time 对象
1.5 获取当前 CPU 时间
print(time.process_time()) # 计算 CPU 运行的时间
2. datetime
模块(处理日期时间)
datetime
模块比 time
更加强大,支持日期运算、格式转换等。
2.1 获取当前日期和时间
from datetime import datetime
now = datetime.now()
print(now) # 输出类似于:2025-02-08 14:30:00.123456
2.2 创建指定日期
dt = datetime(2024, 12, 25, 10, 30, 0)
print(dt) # 2024-12-25 10:30:00
2.3 时间格式化
dt_str = now.strftime("%Y-%m-%d %H:%M:%S")
print(dt_str) # 2025-02-08 14:30:00
2.4 解析时间字符串
dt = datetime.strptime("2025-02-08 14:30:00", "%Y-%m-%d %H:%M:%S")
print(dt) # datetime 对象
2.5 计算时间差(timedelta
)
from datetime import timedelta
tomorrow = now + timedelta(days=1)
print(tomorrow) # 明天的时间
one_hour_later = now + timedelta(hours=1)
print(one_hour_later) # 一小时后的时间
2.6 转换为时间戳
timestamp = now.timestamp()
print(timestamp) # 1707361200.123456
2.7 从时间戳转换回 datetime
dt = datetime.fromtimestamp(1707361200)
print(dt) # 2025-02-08 14:30:00
3. time
vs datetime
对比总结
功能 | time |
datetime |
---|---|---|
获取当前时间 | time.time() |
datetime.now() |
获取时间戳 | time.time() |
datetime.timestamp() |
解析时间字符串 | time.strptime() |
datetime.strptime() |
格式化时间 | time.strftime() |
datetime.strftime() |
计算时间间隔 | time.sleep() |
timedelta |
获取可读时间 | time.localtime() |
直接使用 datetime |
支持日期运算 | ❌ | ✅ |
总结:
- 处理时间戳 用
time
。 - 处理日期、时间运算 用
datetime
。
如果你要处理时间计算、格式转换,推荐使用 datetime
。你有什么具体需求吗?😊
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· C#/.NET/.NET Core优秀项目和框架2025年2月简报
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· 【杭电多校比赛记录】2025“钉耙编程”中国大学生算法设计春季联赛(1)