Python使用datetime模块基于已有日期创建新日期时遇类型错误
错误原因与解决方法
错误原因
你在变量赋值时犯了属性调用错误:
datetime对象的日属性是day(返回整数类型的日期值),而date是一个内置方法(调用until.date()会返回对应的date对象)。- 你直接将
date方法本身赋值给了day变量,导致创建新datetime对象时,传入的day参数是方法对象而非整数,触发了TypeError。
修正后的代码
import datetime def difference(current, until): # 修正:将 until.date 改为 until.day year, month, day = current.year, until.month, until.day print("Year:", current.year, "Type:", type(current.year)) this_year = datetime.datetime(year, month, day) return this_year - current
调用示例
可以通过以下方式验证修正后的代码:
current_date = datetime.datetime.now() target_date = datetime.datetime(2023, 12, 25) print(difference(current_date, target_date))
运行后会输出两个日期的时间差值。
内容的提问来源于stack exchange,提问作者charlie s
相关产品推荐
相关产品推荐

