Python中datetime对象格式化为字符串的详解

Felix
Felix
发布时间:2026-10-13| 4人浏览过
原创

本文详细介绍Python中如何将datetime对象转换为指定格式的字符串。通过strftime方法,演示了标准时间格式、添加上下午标识以及计算全年第几天和周数的具体实现,包含完整代码示例与格式符号说明,帮助开发者快速掌握日期时间处理技巧。

在进行日期时间处理时,了解标准的转换格式符号是基础。这些符号定义了如何将datetime对象中的各个部分(如年、月、日、时、分、秒等)映射为字符串中的特定字符。掌握这些符号有助于灵活定制输出的时间字符串格式。

%a 本地星期的短名称 如:Sun, Mon, ..., Sat (en_US); So, Mo, ..., Sa (de_DE)
%A 本地星期全名称 如 :Sunday, Monday, ..., Saturday (en_US);Sonntag, Montag, ..., Samstag (de_DE)
%w 星期的数字表示,0表示周日,6表示周六 如:0,1,2,,,6
%d 日的数字表示,并且使用0来填补(0-9),如:01, 02, ..., 31
%b 月份的短名称显示,英文单词简写,如:Jan, Feb, ..., Dec (en_US);Jan, Feb, ..., Dez (de_DE)
%B 月份的全名称显示,如:January, February, ..., December (en_US);Januar, Februar, ..., Dezember (de_DE)
%m 月份数字显示,并且用0来补全,如:01, 02, ..., 12
%y 年份的数字表示,两位表示,如:00, 01, ..., 99
%Y 年份的数字表示,四位表示,如:0001, 0002, ..., 2013, 2014, ..., 9998, 9999
%H 24小时制表示,如:00, 01, ..., 23
%I 12小时制表示,如:01, 02, ..., 12
%p 上下午的表示,如:AM,PM
%M 分钟,并且用0补全(0-9),如:00, 01, ..., 59
%S 秒钟,并且用0补全(0-9),如:00, 01, ..., 59
%f 微妙表示,如:000000, 000001, ..., 999999
%z 时区偏移量,如:(empty), +0000, -0400, +1030
%Z 时区名称,如:(empty), UTC, EST, CST
%j 全年中的哪一个,用0补全,如:001, 002, ..., 366
%U 全年中的第几个星期,sunday为第一天如:00, 01, ..., 53
%W 全年中的第几个星期,monday为第一天如:00, 01, ..., 53
%c 本地时间,如:06/24/17 15:43:10
%x 本地日期,如:08/16/88 (None);
%X 本地时间,如:21:30:00 (en_US);
%% %符号

Python提供了datetime模块来处理日期和时间,其中strftime方法是将datetime对象转换为字符串的核心函数。该方法接受一个格式字符串作为参数,根据预设的格式符号生成对应的字符串表示。

例如,若需将当前时间格式化为“YYYY-MM-DD HH:MM:SS”的形式,可以使用strftime方法配合相应的格式符号。具体实现时,首先导入datetime类并获取当前时间对象,然后调用strftime方法传入格式字符串“%Y-%m-%d %H:%M:%S”,即可得到如“2017-06-24 10:10:20”这样的字符串结果。

>>> from datetime import datetime 
>>>now = datetime.now() 
>>> now 
datetime.datetime(2017, 6, 24, 16, 12, 16, 511223) 
>>> strnow = datetime.strftime(now,'%Y-%m-%d %H:%M:%S') 
>>> strnow 
'2017-06-24 16:12:16' 

若希望在时间字符串中增加上午或下午的标识,可以在格式字符串中加入%p符号。该符号会根据时间自动替换为“AM”或“PM”。通过调整strftime的格式参数,可以轻松实现包含上下午标识的时间字符串输出,例如“2017-06-24 10:10:20 PM”。

>>> strnow = datetime.strftime(now,'%Y-%m-%d %H:%M:%S %p') 
>>> strnow 
'2017-06-24 16:12:16 PM' 

除了基本的时间格式化,还可以利用strftime计算当前日期在一年中的天数和周数。通过加入%j符号可以获取全年第几天(补零至三位),加入%U或%W符号可获取全年第几周(分别以周日或周一为第一天)。将这些符号组合进格式字符串,即可一次性输出包含日期、时间、上下午标识、全年天数及周数的完整信息。

>>> strnow = datetime.strftime(now,'%Y-%m-%d %H:%M:%S %p %U %j') 
>>> strnow 
'2017-06-24 16:12:16 PM 25 175' 

以上内容涵盖了Python中datetime对象转换为字符串的主要方法和常见应用场景。通过灵活运用strftime方法及格式符号,开发者可以高效地处理各种日期时间格式化需求。希望本文提供的实例和说明能对读者有所帮助,欢迎继续探索Python日期时间处理的更多功能。

免责声明:本文内容仅供参考,不代表本站观点。转载或引用请注明出处。

Python 相关产品和应用

全部下载
Selenium

Selenium

4.51.0 · Windows

用于浏览器自动化和 Web 测试的 Python 工具。

scikit-learn

scikit-learn

1.9.1 · Windows

常用 Python 机器学习算法与模型评估工具库。

Black

Black

26.10.1 · Windows

强调一致性的 Python 自动代码格式化工具。

Ruff

Ruff

0.17.1 · macOS

由 Rust 编写的高速 Python 代码检查和格式化工具。

pytest

pytest

9.1.1 · Windows

简洁而强大的 Python 自动化测试框架。

FastAPI

FastAPI

0.146.0 · Windows

高性能 Python API 框架,支持类型提示和自动接口文档。

Flask

Flask

3.1.3 · Windows

轻量灵活的 Python Web 应用框架。

Django

Django

6.1.2 · Windows

成熟的 Python Web 框架,适合构建内容站点和业务系统。

Spyder

Spyder

6.1.7 · Windows

面向科学计算与数据分析的 Python 集成开发环境。

SciPy

SciPy

1.18.1 · Windows

面向科学、工程和技术计算的 Python 算法库。