杰瑞科技汇

Python 字符串如何转 datetime?

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

Python 字符串如何转 datetime?-图1
(图片来源网络,侵删)

基本方法: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 标识 AMPM
%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 库(更灵活)

dateutilparser.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

Python 字符串如何转 datetime?-图2
(图片来源网络,侵删)
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 操作。

根据需求选择合适的方法即可!

Python 字符串如何转 datetime?-图3
(图片来源网络,侵删)
分享:
扫描分享到社交APP
上一篇
下一篇