Python中如何将时间格式从MM/DD/YYYY转换为M/D/YYYY并解决格式报错
问题出现原因
有两个错误共同导致了报错:
- 输入的时间格式是
MM/DD/YYYY,用斜杠分隔,但你strptime方法里写的解析格式是"%m-%d-%Y",用横杠分隔,格式不匹配无法正确解析时间字符串。 strftime里的%-m、%-d属于平台相关的格式符,仅在Linux、macOS系统下生效,Windows系统的Python标准库不支持该格式,会直接抛出Invalid format string错误。
解决方法
推荐使用全平台兼容的方案,不要依赖平台特定的格式符:
- 首先修正
strptime的解析格式为"%m/%d/%Y",匹配输入的斜杠分隔格式 - 直接调用datetime对象的
month、day、year整数属性拼接结果,整数转字符串自然不会携带前导零,无需依赖特殊格式符。
正确代码示例:
from datetime import datetime # 示例输入时间 time_data_in_MM_DD_YYYY = "03/05/2024" # 先解析时间 dt = datetime.strptime(time_data_in_MM_DD_YYYY, "%m/%d/%Y") # 拼接得到M/D/YYYY格式结果 time_data_in_M_D_YYYY = f"{dt.month}/{dt.day}/{dt.year}" print(time_data_in_M_D_YYYY) # 输出 3/5/2024
如果你确实需要使用strftime实现,可根据运行平台选择对应格式符:
- Linux/macOS:
strftime("%-m/%-d/%Y") - Windows:
strftime("%#m/%#d/%Y")
内容的提问来源于stack exchange,提问作者Skylimit
相关产品推荐
相关产品推荐

