Python 如何将日期字符串转换为日期对象
在本文中,我们将日期字符串转换为日期对象。我们使用 strptime() 方法来将日期字符串转换为日期对象。
strptime()
strptime() 方法将日期作为输入,并将其转换为日期对象。请注意,您不能将任何字符串转换为日期时间对象。字符串应该处于特定的格式。
语法
strptime()方法的语法如下所示。
datetime.strptime(time_data, format_data)
在这里,
time_date – 是以字符串格式表示的时间。
format_date – 是以日期时间格式表示的数据(字符串),通过使用这个函数从time_data转换而来。
一些重要的格式代码
格式代码 | 含义 | 示例 |
---|---|---|
%a | 缩写的星期几名称。 | 星期一、星期二… |
%A | 完整的星期几名称。 | 星期一、星期二… |
%w | 一周中的星期几,用十进制表示。 | 0、1、2… |
%d | 月份中的日期,以零填充的十进制数。 | 01、02…、30 |
%-d | 月份中的日期,以十进制数表示。 | 1、2…、30 |
%b | 缩写的月份名称。 | 一月、二月… |
%B | 完整的月份名称。 | 一月,二月,…… |
%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 | 上午或下午 | 上午,下午. |
%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