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+)。

图片

“点赞有美意,赞赏是鼓励”

Logo

Agent 垂直技术社区,欢迎活跃、内容共建。

更多推荐