Python 库手册:datetime 日期和时间处理模块
datetime 是 Python 标准库中用于处理日期和时间的核心模块,提供了日期、时间、时间差的表示与运算功能。常用于日志记录、定时任务、时间戳转换、时间范围判断等各种开发任务中。
应用场景:
(1)获取当前时间、日期或时间戳。
(2)将字符串解析为时间对象,或格式化时间为字符串。
(3)计算两个时间的差值(timedelta)。
(4)判断时间是否在某个区间内。
(5)执行日期加减(如 7 天前、1 小时后)。
◆ ◆ ◆
核心概念
datetime 模块主要包含 6 个核心类:
datetime.date:表示“年月日”的日期对象(不含时间)。
datetime.time:表示“时分秒”的时间对象(不含日期)。
datetime.datetime:表示完整时间(日期 + 时间)对象。
datetime.timedelta:表示两个时间之间的差值(可加减)。
datetime.timezone:表示时区信息。
datetime.tzinfo:时区基类,用于自定义时区(一般不直接使用)。
此外,还提供了很多实用的函数,例如 datetime.now()、datetime.strptime()、datetime.strftime() 等。
◆ ◆ ◆
应用举例
例 1:获取当前时间
from datetime import datetime
now = datetime.now()print("当前时间:", now)
例 2:格式化输出为字符串
from datetime import datetime
now = datetime.now()print(now.strftime("%Y-%m-%d %H:%M:%S")) # 输出:2025-07-02 18:00:00
例 3:字符串转时间
from datetime import datetime
s = "2025-07-01 10:30"dt = datetime.strptime(s, "%Y-%m-%d %H:%M")print(dt)
例 4:计算时间差
from datetime import datetime, timedelta
now = datetime.now()delta = timedelta(days=7)print("七天前:", now - delta)
例 5:创建一个自定义日期对象
from datetime import date
d = date(2018, 9, 28)print("mediaTEA:", d)
◆ ◆ ◆
常用函数速览
datetime.combine(date, time)
将 date 和 time 组合成 datetime 对象。
参数:date 和 time 对象
返回:datetime.datetime
datetime.date(year, month, day)
创建一个日期对象(不含时间)。
参数:年、月、日(整数)
返回:datetime.date
datetime.datetime.now( )
获取当前本地时间。
参数:无
返回:datetime.datetime
datetime.datetime.today( )
获取当前本地日期时间,与 now() 类似。
参数:无
返回:datetime.datetime
datetime.datetime.utcnow( )
获取当前 UTC(世界标准时间)时间。
参数:无
返回:datetime.datetime
datetime.fromtimestamp(ts)
将时间戳(如 Unix 时间戳)转换为 datetime 对象。
参数:ts 为浮点型或整型时间戳
返回:datetime.datetime
datetime.strftime(format)
将 datetime 对象格式化为字符串。
参数:格式字符串
返回:字符串
常用格式代码:
%Y 年(2025)
%m 月(01~12)
%d 日
%H:%M:%S 时间(24 小时制)
datetime.strptime(string, format)
将符合格式的字符串解析为 datetime 对象。
参数:字符串、格式字符串
返回:datetime.datetime
datetime.timedelta(days=0, seconds=0, minutes=0, hours=0, weeks=0)
表示两个 datetime 之间的时间差,可加减运算。
参数:比如 timedelta(days=3) 表示三天时间差
返回:datetime.timedelta 对象
datetime.datetime.replace(...)
修改已有日期对象的某些部分(如年份、小时)。
参数:可选,如 year=2025, hour=15
返回:修改后的新 datetime 对象
◆ ◆ ◆
使用建议与注意事项
1、用 strftime() 格式化时间输出,用 strptime() 反向解析。
2、计算时间差时用 timedelta 更安全。
3、注意:now() 获取的是本地时间,utcnow() 获取的是国际标准时间。
4、datetime 对象是不可变类型,使用 .replace() 不会改变原对象。
5、若涉及时区,建议使用 timezone 或第三方库如 pytz / zoneinfo(Python 3.9+)。

“点赞有美意,赞赏是鼓励”
更多推荐



所有评论(0)