参数必须是9项序列,而不是datetime.datetime

4 投票
1 回答
16111 浏览
提问于 2025-04-18 14:37

这个网页应用在下面这一行出错了:

start_time = int(time.mktime(start)) * 1000

错误信息是一个类型错误 - 参数必须是一个包含9个项目的序列,而不是datetime.datetime。

我该怎么把我的datetime.datetime转换成一个包含9个项目的序列呢?

1 个回答

11

与其直接传递 datetime 对象,不如使用 datetime.timetuple 方法。

>>> int(time.mktime(start)) * 1000
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
TypeError: argument must be 9-item sequence, not datetime.datetime

>>> int(time.mktime(start.timetuple())) * 1000
1406215043000L

顺便说一下,如果你使用的是 Python 3.3 及以上版本,就不需要使用 time.mktime 了。可以使用 datetime.timestamp

>>> start.timestamp()
1406215043.0
>>> int(start.timestamp()) * 1000
1406215043000

撰写回答