为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

宝慕林4294392 2021-09-11 17:43:54
我发现这个函数可以计算以秒为单位的时间差。我有一个具有这种时间格式(变量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())


查看完整回答
反对 回复 2021-09-11
?
慕容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


查看完整回答
反对 回复 2021-09-11
  • 2 回答
  • 0 关注
  • 287 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号