计算两个日期之间的时间(以秒为单位)

我发现这个函数可以计算以秒为单位的时间差。我有一个具有这种时间格式(变量g)的数据库。我转换了它们,所以我得到了相同的时间格式。但我给了我这个错误:


2018,12,09,15,34,33

2018,12,09,16,42,54

Traceback (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 datetime


g = '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 v

print j


(v-j).total_seconds()


宝慕林4294392
浏览 288回答 2
2回答

拉丁的传说

您需要使用strptime而不是strftime因为您需要datetime对象而不是字符串,以便在两者之间进行比较并在几秒钟内获得差异。这是一种方法:import datetimeg = '2018-12-09 15:34:33'd = datetime.datetime.strptime(g, '%Y-%m-%d %H:%M:%S')j =&nbsp; datetime.datetime.now()print(d)print(j)print((d-j).total_seconds())

慕容3067478

省略对字符串的转换strftime。>>> import datetime>>>&nbsp;>>> g = '2018-12-09 15:34:33'>>> d = datetime.datetime.strptime(g, '%Y-%m-%d %H:%M:%S')>>> now = datetime.datetime.now()>>>&nbsp;>>> d - nowdatetime.timedelta(-1, 81839, 567339)>>> now - ddatetime.timedelta(0, 4560, 432661)>>>&nbsp;>>> (now - d).total_seconds()4560.432661
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python