我发现这个函数可以计算以秒为单位的时间差。我有一个具有这种时间格式(变量g)的数据库。我转换了它们,所以我得到了相同的时间格式。但我给了我这个错误:2018,12,09,15,34,332018,12,09,16,42,54Traceback (most recent call last):File "test.py", line 12, in <module>(v-j).total_seconds()TypeError: unsupported operand type(s) for -: 'str' and 'str'这段代码有什么问题?import datetimeg = '2018-12-09 15:34:33'd = datetime.datetime.strptime(g, '%Y-%m-%d %H:%M:%S')v = d.strftime('%Y,%m,%d,%H,%M,%S')j = datetime.datetime.now().strftime('%Y,%m,%d,%H,%M,%S')print vprint j(v-j).total_seconds()
2 回答

拉丁的传说
TA贡献1789条经验 获得超8个赞
您需要使用strptime而不是strftime因为您需要datetime对象而不是字符串,以便在两者之间进行比较并在几秒钟内获得差异。这是一种方法:
import datetime
g = '2018-12-09 15:34:33'
d = datetime.datetime.strptime(g, '%Y-%m-%d %H:%M:%S')
j = datetime.datetime.now()
print(d)
print(j)
print((d-j).total_seconds())

慕容3067478
TA贡献1773条经验 获得超3个赞
省略对字符串的转换strftime。
>>> import datetime
>>>
>>> g = '2018-12-09 15:34:33'
>>> d = datetime.datetime.strptime(g, '%Y-%m-%d %H:%M:%S')
>>> now = datetime.datetime.now()
>>>
>>> d - now
datetime.timedelta(-1, 81839, 567339)
>>> now - d
datetime.timedelta(0, 4560, 432661)
>>>
>>> (now - d).total_seconds()
4560.432661
添加回答
举报
0/150
提交
取消