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


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

Strptime()

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

语法

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

datetime.strptime(time_data, format_data)

其中,

time_date – 以字符串格式表示的时间。

format_date – 使用此函数从 time_data 转换而来的日期时间格式的数据(字符串)。

一些重要的格式代码

格式代码 含义 示例
%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 将字符串日期转换为日期时间对象。我们还提取了微秒、分钟和秒。

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-02

9K+ 次查看

开启您的 职业生涯

通过完成课程获得认证

开始学习
广告