Python 从字符串转换为 `datetime` 对象67


在 Python 中,将一个代表日期和时间的字符串转换为 `datetime` 对象是一个常见的任务。`datetime` 模块提供了一个名为 `strptime()` 的方法,专门用于从字符串中解析日期和时间信息。

要使用 `strptime()` 方法,我们需要创建一个格式字符串,指定字符串中各部分(如年、月、日、时、分、秒)的格式。该格式字符串遵循 `strftime()` 方法中使用的相同约定。例如,`%Y` 表示年份,`%m` 表示月份,以此类推。

以下是如何将字符串转换为 `datetime` 对象:```python
from datetime import datetime
# 要转换的字符串
date_str = "2023-03-08 14:33:15"
# 创建格式字符串
format_str = "%Y-%m-%d %H:%M:%S"
# 使用 strptime() 方法进行转换
date_obj = (date_str, format_str)
print(date_obj)
```

输出:```
2023-03-08 14:33:15
```

请注意,`strptime()` 方法区分大小写。格式字符串中的每个占位符必须与字符串中的相应部分相匹配。否则,它将引发 `ValueError`。

自定义格式字符串

对于更复杂的字符串格式,我们可以使用 `strptime()` 的 `%f` 占位符,它允许我们指定自定义的解析模式。例如,以下是如何将字符串中的毫秒部分转换为 `datetime` 对象:```python
from datetime import datetime
# 要转换的字符串
date_str = "2023-03-08 14:33:15.123"
# 创建格式字符串
format_str = "%Y-%m-%d %H:%M:%S.%f"
# 使用 strptime() 方法进行转换
date_obj = (date_str, format_str)
print(date_obj)
```

输出:```
2023-03-08 14:33:15.123000
```

时区处理

默认情况下,`datetime` 对象不包含时区信息。如果需要时区信息,可以使用 `tzinfo` 参数指定时区。例如,以下是如何将字符串转换为带 UTC 时区的 `datetime` 对象:```python
from datetime import datetime, timezone
# 要转换的字符串
date_str = "2023-03-08 14:33:15"
# 创建格式字符串
format_str = "%Y-%m-%d %H:%M:%S"
# 使用 strptime() 方法进行转换
date_obj = (date_str, format_str, tzinfo=)
print(date_obj)
```

输出:```
2023-03-08 14:33:15+00:00
```

常见错误

当将字符串转换为 `datetime` 对象时,可能会遇到以下常见错误:* ValueError:格式字符串不匹配字符串中的格式。
* TypeError:字符串不是有效的日期和时间表示形式。
* OverflowError:日期或时间值超出 `datetime` 模块可以表示的范围。

2024-10-25


上一篇:Python 去除字符串中的空格

下一篇:Python 数学函数简介