在 Python 中,处理日期和时间是一个常见需求。利用 datetimetime 模块中的 strptime() 方法,用户可以轻松地将字符串转换为相应的时间对象。本文将深入探讨如何使用这两个模块中的 strptime() 方法,以便高效地将字符串转换为 datetimestruct_time 对象。

Python 字符串如何转换为 datetime 对象?

datetime.strptime() 方法的语法为:

datetime.strptime(date_string, format)

该方法需要两个参数:待解析的 date_string 和解析格式 format,均为字符串类型。它会根据指定格式解析 date_string,并返回一个 datetime 对象。

有关 datetime.strptime() 中使用的格式代码的详细信息,请参阅 Python 官方文档

相关阅读推荐:Python 中的 datetime 对象转字符串:深入了解 strftime 方法

示例 1:Python 字符串转 datetime.datetime

以下示例展示了如何将包含日期和时间的字符串转换为 datetime 对象,并打印生成对象的类型和值:

from datetime import datetime

datetime_str = '2023-02-01 22:55:26'
datetime_object = datetime.strptime(datetime_str, '%Y-%m-%d %H:%M:%S')

print(type(datetime_object))  # 输出: <class 'datetime.datetime'>
print(datetime_object)  # 输出: 2023-02-01 22:55:26

示例 2:Python 字符串转 datetime.date

要将仅包含日期的字符串转换为 datetime.date() 对象,可以使用以下代码:

from datetime import datetime

date_str = '2023-02-01'
date_object = datetime.strptime(date_str, '%Y-%m-%d').date()

print(type(date_object))  # 输出: <class 'datetime.date'>
print(date_object)  # 输出: 2023-02-01

示例 3:Python 字符串转 datetime.time

以下代码演示了如何将时间字符串转换为 datetime.time() 对象:

from datetime import datetime

time_str = '22:55:26'
time_object = datetime.strptime(time_str, '%H:%M:%S').time()

print(type(time_object))  # 输出: <class 'datetime.time'>
print(time_object)  # 输出: 22:55:26

Python 字符串如何转换为 struct_time 对象?

time.strptime() 函数的语法为:

time.strptime(time_string[, format])

该函数返回一个 time.struct_time() 对象。time_string 是需要转换的时间字符串。如果未提供 format 参数,则默认格式为:

'%a %b %d %H:%M:%S %Y'

该格式与 ctime() 函数返回的格式相同。详细信息可参见 Python 官方文档

示例 1:使用提供的格式将字符串转换为 struct_time() 对象

以下示例将时间字符串转换为 struct_time() 对象,并提供了格式参数:

import time

time_str = '22:33:54'
time_obj = time.strptime(time_str, '%H:%M:%S')

print(time_obj)

输出结果为:

time.struct_time(tm_year=1900, tm_mon=1, tm_mday=1, tm_hour=22, tm_min=33, tm_sec=54, tm_wday=0, tm_yday=1, tm_isdst=-1)

如输出所示,当将字符串转换为 time.struct_time() 对象时,strptime() 函数对格式中没有的字段使用默认占位符值。

示例 2:使用默认格式将字符串转换为 struct_time() 对象

在此示例中,不提供格式参数,因此使用默认格式进行转换:

import time

# 默认格式 - "%a %b %d %H:%M:%S %Y"
time_str_default = 'Wed Feb 01 23:32:12 2023'
time_obj_default = time.strptime(time_str_default)

print(time_obj_default)

输出结果为:

time.struct_time(tm_year=2023, tm_mon=2, tm_mday=1, tm_hour=23, tm_min=32, tm_sec=12, tm_wday=2, tm_yday=32, tm_isdst=-1)

如上所示,当未提供格式参数时,strptime() 函数会使用默认格式。如果输入字符串与默认格式 '%a %b %d %H:%M:%S %Y' 不完全匹配,则会抛出错误。

总结

本文介绍了如何在 Python 中将日期和时间字符串转换为 datetimestruct_time 对象的方法。无论是使用 datetime 模块的 strptime() 方法,还是 time 模块的 strptime() 方法,用户均可轻松实现字符串到时间对象的转换。

通过理解并掌握这些方法,用户可以在编写涉及日期和时间的 Python 应用程序时,提升代码的有效性和可靠性。


也可以看看