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

Python如何硬编码生成当日23:00军用时间格式的日期时间值

解决方案

你原有代码的核心问题有两个:

  1. datetime.date()只会生成纯日期对象,默认关联的时间永远是00:00:00,靠字符串替换改时间的逻辑完全不可靠,你写的replace('23', '0')甚至是把23替换成0,逻辑本身就是反的
  2. 后续用strptime解析时只传了日期对应的格式符,根本没有解析时间部分的逻辑,自然永远拿不到23:00的结果

完全不需要绕字符串处理的弯路,直接用datetime内置的日期时间拼接方法就能实现需求:

可直接运行的实现代码

from datetime import datetime, time

def get_fixed_time(scheduled_time):
    # 提取传入值的日期部分
    current_date = datetime.date(scheduled_time)
    # 把日期和固定23:00的时间拼接为完整datetime对象
    final_datetime = datetime.combine(current_date, time(hour=23))
    # 按要求格式返回字符串,需要直接返回datetime对象的话去掉strftime即可
    return final_datetime.strftime("%Y-%m-%dT%H:%M")

运行效果验证

  • 传入2022年6月1日对应的日期参数,返回值为2022-06-01T23:00
  • 传入2022年5月14日对应的日期参数,返回值为2022-05-14T23:00

补充:如果你的scheduled_time本身就是字符串格式的日期,先通过strptime把它转成datetime对象再传入即可,不要手动做字符串替换改时间,很容易出边界bug。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.29 09:30:45