如何将Python日期字符串转换为日期对象?


在这篇文章中,我们将日期字符串转换为日期对象。我们使用strptime() 方法将日期字符串转换为日期对象。

Strptime()

strptime() 方法以日期作为输入,并将其转换为日期对象。请注意,您不能将任何字符串转换为 datetime 对象。字符串应采用特定格式。

语法

本节显示 strptime() 方法的语法。

datetime.strptime(time_data, format_data)

其中:

time_date – 字符串格式的时间。

format_date – 使用此函数从 time_data 转换而成的 datetime 格式的数据(字符串)。

一些重要的格式代码

格式代码 含义 示例
%a 缩写的工作日名称。 Mon, Tue……
%A 完整的工作日名称。 Monday, Tuesday……
%w 工作日的小数值。 0,1,2……
%d 月份中的日期,为用零填充的十进制数。 01,02,…,30
%-d 月份中的日期,为十进制数。 1,2,…….,30
%b 缩写的月份名称。 Jan,Feb……
%B 完整的月份名称。 January, February……
%m 月份,为用零填充的十进制数。 01,02,03,……,12
%-m 月份,为十进制数。 1,2,3,…….,12.
%y 不含世纪的年份,为用零填充的十进制数。 00,01……
%Y 含世纪的年份,为十进制数。 2001,2002……
%-y 不含世纪的年份,为十进制数。 0,1,2,3……
%H 小时(24小时制),为用零填充的十进制数。 01,02,…..,24
%-H 小时(24小时制),为十进制数。 1,2,….,24.
%I 小时(12小时制),为用零填充的十进制数。 01,02,….,12
%-I 小时(12小时制),为十进制数。 1,2,…,12.
%p AM 或 PM AM,PM。
%M 分钟,为用零填充的十进制数。 00,01,02,….,59
%-M 分钟,为十进制数。 1,2,…..,59.
%S 秒,为用零填充的十进制数。 01,02,….,59
%-S 秒,为十进制数。 1,2,…..,59.
%f 微秒,为十进制数,左侧用零填充 000000,000001,….999999
%j 一年中的第几天,为用零填充的十进制数。 001, 002, ..., 366

示例1

在下面的示例中,我们使用 strptime 将字符串日期转换为 datetime 对象。我们还提取微秒、分钟和秒。

from datetime import datetime time_data = "23/01/01 04:35:7.123" format_data = "%d/%m/%y %H:%M:%S.%f" date = datetime.strptime(time_data, format_data) print("Microsecond:",date.microsecond) print("Hour:",date.hour) print("Minute:",date.minute) print("Second:",date.second) print("The date is:",date)

输出

接收到的输出如下所示。

Microsecond: 123000
Hour: 4
Minute: 35
Second: 7
The date is: 2001-01-23 04:35:07.123000

示例2

在这个第一个示例中导入了模块,并提供了输入 DateTime 字符串。现在我们使用 strptime() 方法获取所需的格式,并使用 date()DateTime中检索日期。

import datetime date_str = '29122017' # The date - 29 Dec 2017 format_str = '%d%m%Y' # The format datetime_obj = datetime.datetime.strptime(date_str, format_str) print(datetime_obj.date())

输出

生成的输出如下所示。

2017-12-29

更新于:2023年11月2日

9K+ 次浏览

启动您的职业生涯

完成课程获得认证

开始学习
广告