参数必须是9项序列,而不是datetime.datetime
这个网页应用在下面这一行出错了:
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