datetime.now和int的不支持的操作数类型

时间:2015-06-02 11:55:11

标签: python django

我想计算从request.session['SESSION_START_TIME']datetime.datetime.now()的已用时间。我在request.session['SESSION_START_TIME']中存储日期时间的方式是:

request.session['SESSION_START_TIME'] = datetime.datetime.now()

我想要计算经过时间的方式是:

diff = datetime.datetime.now() - request.session['SESSION_START_TIME']

但结果我收到此错误消息unsupported operand type for -: datetime.now and int。我想解决方案是以某种方式转换存储在会话中的值,但我不知道如何。

1 个答案:

答案 0 :(得分:3)

您的会话似乎将日期时间对象存储为自UNIX纪元以来的秒数;可能是因为datetime个对象本身不可序列化。

首先转换回datetime对象:

start_time = datetime.datetime.fromtimestamp(request.session['SESSION_START_TIME'])
diff = datetime.datetime.now() - start_time

如果要透明地处理datetime个对象,可能需要查看Django文档中的Session serialisation