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

Python中datetime对象调用replace修改分钟值不生效怎么解决

问题原因

Python的datetime是不可变对象,replace()方法不会修改原对象,只会返回修改后的新对象。你的代码中所有条件分支内的replace调用都没有将返回值重新赋值给time变量,因此修改结果没有被保留,输出自然还是原来的时间。

修正后的代码

from datetime import datetime

time = datetime.now()
time = time.replace(second=0, microsecond=0)
if time.minute in [0, 1, 2]:
    time = time.replace(minute=0)
elif time.minute in [15, 16, 17]:
    time = time.replace(minute=15)
elif time.minute in [30, 31, 32]:
    time = time.replace(minute=30)
elif time.minute in [45, 46, 47]:
    time = time.replace(minute=45)
elif time.minute < 15:
    time = time.replace(minute=15)
elif time.minute < 30:
    time = time.replace(minute=30)
elif time.minute < 45:
    time = time.replace(minute=45)
elif time.minute < 59:
    # 分钟切换到0点需要同步增加小时,避免时间逻辑错误
    time = time.replace(minute=0, hour=time.hour + 1)

额外说明

原代码最后一个分支仅将分钟设为0、未调整小时,会出现14:58修改后变成14:00的逻辑问题,上述修正代码已经补充了小时+1的处理逻辑。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.30 09:39:02