Python 将 Excel 日期格式转换为 datetime 对象 - 不依赖第三方库
以下是将各种日期格式转换为datetime格式的函数:
from datetime import datetime
def convert_to_datetime(date_str):
date_format = None
# 判断日期格式并设置对应的日期格式字符串
if "\/" in date_str:
if len(date_str.split("\"")) == 3:
date_format = "%Y\/%m\/%d"
elif len(date_str.split("\"")) == 2:
date_format = "%Y\/%m"
elif "年" in date_str and "月" in date_str and "日" in date_str:
date_format = "%Y年%m月%d日"
elif "-" in date_str:
if len(date_str.split("-")) == 3:
date_format = "%Y-%m-%d"
elif len(date_str.split("-")) == 2:
date_format = "%Y-%m"
elif date_str.isdigit():
date_format = "excel_date"
if date_format is None:
return None
try:
# 将日期字符串转换为datetime对象
if date_format == "excel_date":
excel_date = int(date_str)
dt = datetime.fromordinal(datetime(1900, 1, 1).toordinal() + excel_date - 2)
else:
dt = datetime.strptime(date_str, date_format)
return dt
except ValueError:
return None
# 示例用法
date_str1 = "2023/4/4"
date_str2 = "2022年12月日"
date_str3 = "2023-4-4"
date_str4 = "excel日期格式"
dt1 = convert_to_datetime(date_str1)
dt2 = convert_to_datetime(date_str2)
dt3 = convert_to_datetime(date_str3)
dt4 = convert_to_datetime(date_str4)
print(dt1) # 输出:2023-04-04 00:00:00
print(dt2) # 输出:2022-12-01 00:00:00
print(dt3) # 输出:2023-04-04 00:00:00
print(dt4) # 输出:None
这个函数会根据输入的日期字符串判断其格式,并使用对应的日期格式字符串将其转换为datetime对象。如果无法确定日期格式或转换失败,则返回None。
原文地址: https://www.cveoy.top/t/topic/pS7J 著作权归作者所有。请勿转载和采集!