Python报错TypeError:需传入整数(实际为datetime.datetime类型)求助
解决TypeError: an integer is required (got type datetime.datetime)问题
我来帮你梳理下问题所在,以及怎么解决:
错误根源
你搞反了时间转换的方法:
dt.fromtimestamp()的作用是把Unix时间戳(整数/浮点数)转换成datetime对象,但你传入的NextInterval5m已经是一个datetime对象了,这就导致了类型不匹配的错误。- 你真正需要的是把datetime对象转换成Unix时间戳,应该用datetime对象的
.timestamp()方法。
额外的代码问题
你的代码里还有两个小问题需要修正:
now变量没有定义,需要先获取当前时间timedelta没有导入,得补充到导入语句里
修正后的完整代码
import datetime from datetime import datetime as dt, timedelta # 先定义当前时间 now = dt.now() def ceil_dt(dt, delta): return dt + (dt.min - dt) % delta # 计算下一个5分钟间隔的datetime NextInterval5m = ceil_dt(now, timedelta(minutes=5)) # 将datetime转换为Unix时间戳(浮点数,包含毫秒) unixtime5m = NextInterval5m.timestamp() # 如果需要整数形式的时间戳(秒级),可以转成int unixtime5m_int = int(unixtime5m)
补充说明
.timestamp()方法返回的是从1970-01-01 UTC到当前时间的秒数,是浮点数,比如1718923200.123- 如果只需要秒级的整数时间戳,用
int()转换即可,结果类似1718923200
内容的提问来源于stack exchange,提问作者JayK23
相关产品推荐
相关产品推荐

