You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何将字符串2021-09-30_1转换为datetime格式2021/09/30 00:00

你之前使用的datetime.strptime(date, '%Y %d %Y %I')无法成功转换,是因为格式规则和输入字符串完全不匹配:既没有适配输入里的-、_分隔符,也错误重复使用了年份格式符%Y,且%I是12小时制格式符,不符合当前需求场景。

实现步骤

  • 用split('_')把输入字符串拆分为日期前缀和后缀数字两部分
  • 后缀数字转为整型后减1,得到目标小时数
  • 用strptime解析日期前缀为datetime对象,替换小时字段后即可得到目标datetime类型数据
  • 若需要输出为2021/09/30 00:00格式的字符串,调用strftime方法格式化即可

完整代码示例

from datetime import datetime

# 输入示例
input_str = "2021-09-30_1"

# 拆分日期和小时后缀
date_part, hour_part = input_str.split("_")
# 计算实际小时数
hour = int(hour_part) - 1
# 生成目标datetime对象
target_dt = datetime.strptime(date_part, "%Y-%m-%d").replace(hour=hour)
# 转换为指定格式的字符串
formatted_result = target_dt.strftime("%Y/%m/%d %H:%M")

# 输出验证
print(target_dt)  # datetime类型输出:2021-09-30 00:00:00
print(formatted_result)  # 字符串格式输出:2021/09/30 00:00

注意事项

如果后缀数字可能超过24,可以自行添加数值校验逻辑,避免出现小时数超过23的异常。


内容的提问来源于stack exchange,提问作者ryszard eggink

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.28 17:15:04