在Python中处理日期时间字符串时,遇到"24:00"这样的时间表示需要转换为"00:00"(代表次日的零点),可以通过以下方法实现:
datetime
模块默认不支持解析"24:00"格式。from datetime import datetime
date_str = "2023-05-20 24:00:00"
# 替换"24:00"为"00:00"并增加1天
if "24:00" in date_str:
dt = datetime.strptime(date_str.replace("24:00", "00:00"), "%Y-%m-%d %H:%M:%S")
dt = dt.replace(day=dt.day + 1) # 增加1天
else:
dt = datetime.strptime(date_str, "%Y-%m-%d %H:%M:%S")
print(dt) # 输出: 2023-05-21 00:00:00
dateutil
库(自动处理)from dateutil.parser import parse
date_str = "2023-05-20 24:00:00"
dt = parse(date_str)
print(dt) # 输出: 2023-05-21 00:00:00
import re
from datetime import datetime, timedelta
date_str = "2023-05-20 24:00:00"
# 正则匹配并替换
if re.search(r'24:00:\d{2}', date_str):
dt = datetime.strptime(re.sub(r'24:00', '00:00', date_str), "%Y-%m-%d %H:%M:%S")
dt += timedelta(days=1) # 增加1天
else:
dt = datetime.strptime(date_str, "%Y-%m-%d %H:%M:%S")
print(dt)
pytz
或zoneinfo
模块处理。%Y-%m-%d %H:%M:%S
)。"2023-12-31 24:00:00"
2024-01-01 00:00:00
(自动跨年)通过上述方法,可以规范时间格式并避免解析错误。
没有搜到相关的文章