time模块基于时间戳和struct_time,datetime模块面向对象;通过时间戳可实现两者互转:time转datetime用datetime.fromtimestamp(time.mktime(struct_time)),datetime转time用dt.timestamp()或dt.timetuple()。

在Python中,time 和 datetime 模块都用于处理时间,但它们的数据类型和使用方式略有不同。掌握它们之间的转换方法,有助于灵活处理时间数据。
time模块与datetime模块简介
time 模块主要基于时间戳(timestamp)操作,常用函数如 time.time()、time.localtime() 返回的是 struct_time 对象。
datetime 模块更面向对象,常用类有 datetime.datetime,使用起来更直观。
从time转换为datetime
如果你有一个 time.struct_time 或时间戳,可以转为 datetime 对象:
- 时间戳转 datetime:
datetime.datetime.fromtimestamp(time.time()) - struct_time 转 datetime:
先用 time.mktime(t) 转为时间戳,再用 fromtimestamp()
例如:
dt = datetime.datetime.fromtimestamp(time.mktime(struct_time_obj))
从datetime转换为time
如果已有 datetime 对象,想转为 struct_time 或时间戳:
立即学习“Python免费学习笔记(深入)”;
- datetime 转时间戳:
timestamp = dt.timestamp() 或 time.mktime(dt.timetuple()) - datetime 转 struct_time:
dt.timetuple() 直接返回对应的 struct_time
实际例子
快速对照:
import time import datetime当前时间
now_struct = time.localtime() now_dt = datetime.datetime.now()
time → datetime
dt_from_time = datetime.datetime.fromtimestamp(time.mktime(now_struct))
datetime → time
timestamp_from_dt = now_dt.timestamp() struct_from_dt = now_dt.timetuple()
基本上就这些,关键是理解时间戳是桥梁,struct_time 和 datetime 可通过它互转。











