在 Python 中,将字符串转换为 datetime 对象可以使用 datetime 模块中的 strptime() 方法,以下是详细说明和示例:

(图片来源网络,侵删)
基本方法:datetime.strptime()
strptime() 是 datetime 类的静态方法,用于将字符串解析为 datetime 对象,其语法为:
datetime.strptime(date_string, format_code)
date_string:要转换的字符串。format_code:指定字符串的格式,使用特定的格式代码(见下表)。
常用格式代码
| 代码 | 说明 | 示例 |
|---|---|---|
%Y |
4位年份 | 2025 |
%m |
2位月份(01-12) | 09 |
%d |
2位日期(01-31) | 15 |
%H |
24小时制小时(00-23) | 14 |
%I |
12小时制小时(01-12) | 02 |
%M |
分钟(00-59) | 30 |
%S |
秒(00-59) | 45 |
%f |
微秒(000000-999999) | 123456 |
%p |
AM/PM 标识 | AM 或 PM |
%b |
月份缩写(英文) | Sep |
%B |
月份全称(英文) | September |
示例代码
示例1:基本日期时间转换
from datetime import datetime date_string = "2025-09-15 14:30:45" format_code = "%Y-%m-%d %H:%M:%S" dt = datetime.strptime(date_string, format_code) print(dt) # 输出: 2025-09-15 14:30:45 print(type(dt)) # 输出: <class 'datetime.datetime'>
示例2:带微秒的时间
date_string = "2025-09-15 14:30:45.123456" format_code = "%Y-%m-%d %H:%M:%S.%f" dt = datetime.strptime(date_string, format_code) print(dt) # 输出: 2025-09-15 14:30:45.123456
示例3:12小时制时间(带AM/PM)
date_string = "09/15/2025 02:30:45 PM" format_code = "%m/%d/%Y %I:%M:%S %p" dt = datetime.strptime(date_string, format_code) print(dt) # 输出: 2025-09-15 14:30:45
示例4:带月份名称的日期
date_string = "15-Sep-2025" format_code = "%d-%b-%Y" dt = datetime.strptime(date_string, format_code) print(dt) # 输出: 2025-09-15 00:00:00
错误处理
如果字符串格式与 format_code 不匹配,会抛出 ValueError,建议用 try-except 捕获异常:
from datetime import datetime
date_string = "2025/09/15" # 格式与下方不匹配
format_code = "%Y-%m-%d"
try:
dt = datetime.strptime(date_string, format_code)
except ValueError as e:
print(f"转换失败: {e}") # 输出: 转换失败: time data '2025/09/15' does not match format '%Y-%m-%d'
其他方法
使用 dateutil 库(更灵活)
dateutil 的 parser.parse() 可以自动识别多种格式:
from dateutil import parser date_string = "2025-09-15 14:30:45" dt = parser.parse(date_string) print(dt) # 输出: 2025-09-15 14:30:45
安装 dateutil:

(图片来源网络,侵删)
pip install python-dateutil
使用 pandas.to_datetime()(适合批量处理)
import pandas as pd date_string = "2025-09-15 14:30:45" dt = pd.to_datetime(date_string) print(dt) # 输出: 2025-09-15 14:30:45
- 标准格式:用
datetime.strptime(),需明确格式代码。 - 灵活格式:用
dateutil.parser.parse(),自动识别。 - 批量处理:用
pandas.to_datetime(),适合 DataFrame 操作。
根据需求选择合适的方法即可!

(图片来源网络,侵删)
