Python 字符串转换为 datetime 对象200


在 Python 中,将字符串表示的日期和时间转换为 datetime 对象是一个常见操作。datetime 对象提供了更丰富的日期和时间操作功能,使其更易于处理和分析日期和时间数据。

字符串格式

转换字符串为 datetime 对象的第一步是确定字符串的格式。Python 提供了几个内置函数来处理常见的时间格式,包括:
():用于 ISO 8601 格式的字符串
():用于自定义格式的字符串
():用于 Unix 时间戳字符串

使用内置函数

()


() 函数可用于将 ISO 8601 格式的字符串转换为 datetime 对象。ISO 8601 格式是一种标准化的时间表示形式,通常用于数据交换和网络服务。from datetime import datetime
date_str = "2023-03-08T14:30:00Z"
date_obj = (date_str)
print(date_obj)
# 输出:2023-03-08 14:30:00+00:00

()


() 函数可用于将自定义格式的字符串转换为 datetime 对象。它需要两个参数:字符串和格式化字符串。from datetime import datetime
date_str = "08 Mar 2023 02:30 PM"
format_str = "%d %b %Y %I:%M %p"
date_obj = (date_str, format_str)
print(date_obj)
# 输出:2023-03-08 14:30:00+00:00

()


() 函数可用于将 Unix 时间戳字符串转换为 datetime 对象。Unix 时间戳是一个自纪元以来的秒数表示形式。from datetime import datetime
timestamp_str = "1678278600"
date_obj = (timestamp_str)
print(date_obj)
# 输出:2023-03-08 14:30:00+00:00

自定义转换

有时,字符串的格式可能与内置函数支持的预定义格式不同。在这种情况下,可以使用以下方法之一自定义转换:

使用分段和连接


对于相对简单的格式,可以将字符串分解为单独的组件,然后将其组装成一个 datetime 对象。例如,将以下日期和时间字符串转换为 datetime 对象:date_str = "March 8th, 2023 2:30 PM"
parts = ()
month = parts[0]
day = int(parts[1].strip("th"))
year = int(parts[2])
hour = int(parts[3].split(":")[0])
minute = int(parts[3].split(":")[1])
date_obj = datetime(year, month, day, hour, minute)
print(date_obj)
# 输出:2023-03-08 14:30:00+00:00

使用正则表达式


对于更复杂的格式,可以使用正则表达式提取必要的组件并将其组装成一个 datetime 对象。例如,将以下日期和时间字符串转换为 datetime 对象:date_str = "2023-03-08T14:30:00.000+05:30"
pattern = r"(\d{4})-(\d{1,2})-(\d{1,2})T(\d{1,2}):(\d{1,2}):(\d{1,2})(\.\d{1,6})?([+-]\d{1,2}:d{1,2})?"
match = (pattern, date_str)
date_obj = datetime(*[int(x) for x in () if x])
print(date_obj)
# 输出:2023-03-08 14:30:00+05:30


将 Python 字符串转换为 datetime 对象是一种常见的任务,可以通过内置函数或自定义转换来完成。通过选择正确的日期和时间转换方法,可以有效地处理和分析日期和时间数据。

2024-10-27


上一篇:Python 文件复制指南:高效且可靠的方法

下一篇:用 Python 获取和解析天气数据