use*_*486 -1 python time datetime python-2.7 python-datetime
我使用的是Python 2.7.我想找到以下变量的分钟时差;
import datetime
#Time Format (YYYY-MM-DD HH-MM-SS)
TimeStart = '2014-06-30 13:23:46'
TimeEnd = datetime.datetime.now()
Run Code Online (Sandbox Code Playgroud)
我想编写一个函数,使用浮动数据类型以分钟为单位返回时间差.如果时差为90secs,则函数返回1.5.这是我写的功能,但不幸的是,它远没有起作用.
def getTimeDifferenceFromNow(TimeStart, TimeEnd):
timeDiff = TimeEnd - TimeStart
return divmod(timeDiff.days * 86400 + timeDiff.seconds, 60)
Run Code Online (Sandbox Code Playgroud)
如何在Python 2.7中完成?忘记我写的功能,如果它离正确的答案太远了.
您需要先解析输入字符串,然后才能执行此操作:
TimeStart = datetime.datetime.strptime(TimeStart, '%Y-%m-%d %H:%M:%S')
Run Code Online (Sandbox Code Playgroud)
我打电话之前会这样做getTimeDifferenceFromNow().
一旦你减去了两个datetime对象,timedelta生成的方法就有了一个方便的方法timedelta.total_seconds(); 将其除以60得到以分钟为单位的增量:
def getTimeDifferenceFromNow(TimeStart, TimeEnd):
timeDiff = TimeEnd - TimeStart
return timeDiff.total_seconds() / 60
Run Code Online (Sandbox Code Playgroud)
演示:
>>> import datetime
>>> TimeStart = datetime.datetime(2014, 6, 30, 13, 23, 46)
>>> TimeEnd = datetime.datetime.now()
>>> TimeEnd
datetime.datetime(2014, 7, 1, 11, 31, 59, 134990)
>>> def getTimeDifferenceFromNow(TimeStart, TimeEnd):
... timeDiff = TimeEnd - TimeStart
... return timeDiff.total_seconds() / 60
...
>>> getTimeDifferenceFromNow(TimeStart, TimeEnd)
1328.2189165000002
Run Code Online (Sandbox Code Playgroud)