我需要在Python中进行两次比较。
首先我得到当前时间:
current_time = time.strftime("%H:%M:%S")
我从列表中获得了另一个时间值:
another_time = datetime.strptime(some_list[2],'%H:%M:%S')
我希望在几分钟内得到这两次之间的差异。我试图这样做:
time_now = datetime.strptime(current_time, '%H:%M:%S')
d1 = time.mktime(another_time.timetuple())
d2 = time.mktime(time_now.timetuple())
diff = (d2-d1) / 60
我得到的是:
-1206.0333333
当我打印出另一个时间时,我得到:
1900-01-01 21:07:23
和current_time:
1900-01-01 01:01:21
所以差异应该是238分钟。
这一年的问题是什么(今年到底哪里来了?)?或者我应该在代码中更改什么?
答案 0 :(得分:0)
我认为这就是你想要做的事情:
from datetime import datetime
from dateutil.parser import parse
l = ['Last', 'ended:', '2015/01/06', '23:38:34', 'UTC']
another_time = parse(l[2] + ' ' + l[3]) # datetime(2015, 1, 6, 23, 38, 34)
current_time = datetime.now() # datetime(2015, 1, 7, 1, 1, 21)
elapsed = current_time - another_time
elapsed.total_seconds() // 60 # 82 minutes
答案 1 :(得分:0)
我建议转换为Epoch time然后减去
示例:
import time
import datetime
import calendar
current_time = int(time.time())
another_time = calendar.timegm(datetime.datetime(2015,01,8,0,0).utctimetuple())
print(datetime.timedelta(seconds=another_time-current_time))
输出:
1 day, 0:15:50
答案 2 :(得分:0)
如果你得到timedelta
- 例如减去两个datetime.datetime对象 - 你可以使用total_seconds()
方法,除以60,并转换为整数。
from dateutil.parser import parse
timeone = parse("10:00 a.m.") #<type 'datetime.datetime'>
timetwo = parse("12:40 p.m.") #<type 'datetime.datetime'>
td = timetwo - timeone # <type 'datetime.timedelta'>
delta_mins = int(td.total_seconds()/60) #outputs 160