在 Python 中,处理日期和时间是一个常见需求。利用 datetime
和 time
模块中的 strptime()
方法,用户可以轻松地将字符串转换为相应的时间对象。本文将深入探讨如何使用这两个模块中的 strptime()
方法,以便高效地将字符串转换为 datetime
和 struct_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 中将日期和时间字符串转换为 datetime
和 struct_time
对象的方法。无论是使用 datetime
模块的 strptime()
方法,还是 time
模块的 strptime()
方法,用户均可轻松实现字符串到时间对象的转换。
通过理解并掌握这些方法,用户可以在编写涉及日期和时间的 Python 应用程序时,提升代码的有效性和可靠性。