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