Python实现日期加一天时报ValueError: invalid literal for int()错误如何修复
错误原因
- 类型转换逻辑错误:你调用
strftime()方法之后,已经把datetime类型的时间对象转换成了「%m/%d/%Y, %H:%M:%S」格式的字符串,这种包含斜杠、逗号、冒号的字符串无法直接通过int()转为十进制整数,直接触发了本次的ValueError。 - timedelta参数使用错误:
timedelta构造方法不接收字符串类型的参数,也不能直接传入数字默认代表天数,需要明确指定时间单位参数(比如days=1代表加1天)。
修复后的代码
from datetime import datetime from datetime import timedelta add_days = 1 # 先做时间计算,计算完成后再格式化输出 a = datetime.now() a = a + timedelta(days=add_days) # 最后再转成需要的字符串格式 formatted_a = a.strftime("%m/%d/%Y, %H:%M:%S") print(formatted_a)
修复说明
- 时间计算必须在
datetime类型的对象上完成,不要提前转为字符串 - 使用
timedelta时明确指定时间单位参数,参数传整数类型即可 - 所有时间运算完成后,再调用
strftime()转为你需要的格式化字符串输出即可
内容的提问来源于stack exchange,提问作者scripter2
相关产品推荐
相关产品推荐

