如何将 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
广告