如何将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. |
| %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("微秒:",date.microsecond)
print("小时:",date.hour)
print("分钟:",date.minute)
print("秒钟:",date.second)
print("日期:",date)
输出
收到的输出如下。
微秒: 123000
小时: 4
分钟: 35
秒钟: 7
日期: 2001-01-23 04:35:07.123000
例2
在第一个示例中导入了模块,并提供了输入的 DateTime 字符串。现在我们使用 strptime() 方法获取所需格式和 date() 从 DateTime 检索日期。
import datetime
date_str = '29122017' # 日期 - 2017 年 12 月 29 日
format_str = '%d%m%Y' # 格式
datetime_obj = datetime.datetime.strptime(date_str, format_str)
print(datetime_obj.date())
输出
产生的输出如下所示。
2017年12月29日
极客教程