Python 中如何把字符串转换成 datetime 对象?

Python 字符串转 datetime 用 datetime.strptime(字符串, 格式),格式符 %Y-%m-%d %H:%M:%S 等。本文介绍常用格式符、错误处理及 dateutil 自动解析。

最佳实践
Python 中如何把字符串转换成 datetime 对象?封面

标准做法:datetime.strptime(date_string, format)——按指定格式解析字符串。如 datetime.strptime("2024-01-15 10:30:00", "%Y-%m-%d %H:%M:%S")

基本用法

from datetime import datetime

date_string = "2024-01-15 10:30:00"
date_format = "%Y-%m-%d %H:%M:%S"

dt = datetime.strptime(date_string, date_format)
print(dt)  # 2024-01-15 10:30:00

格式串必须和字符串严格对应,否则抛 ValueError

常用格式符

格式符 含义 示例
%Y 4 位年 2024
%m 2 位月 01
%d 2 位日 15
%H 24 小时制 10
%M 30
%S 00
%f 微秒 123456
%z 时区偏移 +0800

ISO 8601 格式(更省事)

# Python 3.7+
dt = datetime.fromisoformat("2024-01-15T10:30:00+08:00")

格式不确定:dateutil

from dateutil import parser

dt = parser.parse("Jan 15, 2024 10:30 AM")   # 自动识别各种格式

反向操作:datetime 转字符串

dt.strftime("%Y-%m-%d %H:%M:%S")   # 格式化输出
dt.isoformat()                      # ISO 8601 格式

常见问题(FAQ)

Q:解析失败报 ValueError?
A:格式串和字符串不匹配。逐个核对格式符;不确定格式用 dateutil。

Q:带毫秒的字符串怎么解析?
A:"%Y-%m-%d %H:%M:%S.%f"%f 匹配微秒(毫秒三位也能正确解析为微秒)。

Q:解析日志里的时间戳用什么?
A:日志采集场景不需要在应用里解析——观测云 DataKit/Pipeline 会自动提取日志时间字段作为日志时间。

获取专属方案

联系我们

加入社区

微信扫码
加入官方交流群

立即体验

在线开通,按量计费,真正的云服务!

立即开始

选择观测云版本

代码托管平台