Python datetime 模块详解:获取时间与 strftime 日期格式化指南

Ryan
Ryan
发布时间:2026-10-12 | 1人浏览过
原创

Python 本身没有独立的日期数据类型,但可通过内置的 datetime 模块将日期视为对象进行操作。本文将演示如何获取当前系统时间、自定义构造日期对象,并利用 strftime() 方法配合各类占位符完成精准的日期格式化输出,适用于日志记录、界面展示及定时任务场景。

导入模块与获取当前时间

在 Python 中处理时间数据时,需首先引入标准库中的 datetime 模块。调用其下的 now() 方法可返回包含年、月、日、时、分、秒及微秒的完整 datetime 对象。

import datetime

# 获取当前系统时间对象
current_time = datetime.datetime.now()
print(current_time)
# 运行结果示例:2023-02-14 20:43:20.889388

自定义创建日期对象

除了获取当前时间,开发者也可通过 datetime.datetime() 构造函数指定特定时间点。该方法必须传入年、月、日三个必选参数,小时、分钟、秒、微秒以及时区均为可选参数(默认值为 0 或 None)。

import datetime

# 构造指定时间的日期对象:2020年5月17日
desired_date = datetime.datetime(2020, 5, 17)
print(desired_date)
# 运行结果示例:2020-05-17 00:00:00

利用 strftime() 格式化日期输出

原始的日期对象直接打印会包含冗余的微秒信息。在实际项目中,通常需要将其转换为符合人类阅读习惯或数据库规范的字符串格式。strftime() 方法正是为此设计,它接收一个包含占位符的格式字符串作为参数,并返回对应的格式化结果。

import datetime

x = datetime.datetime(2019, 10, 1)
print(x.strftime("%B"))  # 输出完整月份名称
print(x.strftime("%A"))  # 输出完整星期名称

核心格式指令对照

掌握以下常用格式码即可满足绝大多数业务需求。编写时需注意大小写敏感性及占位符前后的文字拼接:

  • %Y:四位数年份(如 2023);%y:两位数年份(如 23)
  • %m:数字月份(01-12);%B:完整月份名(February);%b:缩略月份名(Feb)
  • %d:日期数字(01-31);%j:一年中的第几天(001-366)
  • %A:完整星期名(Tuesday);%a:缩略星期名(Tue);%w:数字星期(0为周日)
  • %H:24小时制小时(00-23);%I:12小时制小时(00-11);%p:AM/PM
  • %M:分钟(00-59);%S:秒(00-59);%f:微秒(000000-999999)
  • %x/%X:本地化日期/时间格式(如 02/14/23 / 21:01:34);%c:本地化日期时间完整版
  • %%:字面量百分号(防止被解析为格式码)

组合格式化实战示例

将多个指令拼接可同时控制年月日与时分秒的输出顺序,例如生成标准的 ISO 格式或中文报告格式:

import datetime

x = datetime.datetime.now()
iso_format = x.strftime("%Y-%m-%d %H:%M:%S")
report_format = f"{x.strftime('%Y')}年{x.strftime('%m')}月{x.strftime('%d')}日 {x.strftime('%H')}点{str(x.minute).zfill(2)}分"
print(iso_format)
print(report_format)

常见运行异常排查

  1. ModuleNotFoundError: No module named 'datetime':该错误通常由拼写错误或环境隔离引起。datetime 属于 Python 标准库无需额外安装,请检查文件名是否误命名为 datetime.py 导致自身模块被覆盖。
  2. TypeError: missing required positional argument:使用构造函数创建对象时遗漏了必须的年、月、日参数。始终确保按顺序传入这三个整型数值。
  3. 格式输出不符合预期:混用了未定义的占位符或符号大小写错误。建议在 IDE 中启用语法高亮,并参照上方对照表逐一核对。

以上就是 Python datetime 模块处理日期与 strftime 格式化的详细内容,更多关于 Python 时间对象操作及自动化脚本开发的资料请关注本站其它相关文章!

相关标签:

本站声明

本文内容仅供参考,不代表本站观点。转载或引用请注明出处。如发现内容问题,请通过联系我们页面反馈。

Python 相关产品和应用

全部下载

专题列表