Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/321.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在python中获取以这种格式表示的时间的时差(以分钟为单位)?_Python_Python 2.7_Datetime_Time_Python Datetime - Fatal编程技术网

如何在python中获取以这种格式表示的时间的时差(以分钟为单位)?

如何在python中获取以这种格式表示的时间的时差(以分钟为单位)?,python,python-2.7,datetime,time,python-datetime,Python,Python 2.7,Datetime,Time,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() 我想编写一个函数,使用浮点数据类型返回以分钟为单位的时间差。如果时间差为90秒,则函数返回1.5。这是我写的函数,但不幸的是,它远远不能工作 def getTimeDifference

我正在使用Python 2.7。我想用下面的变量找出以分钟为单位的时差

import datetime  
#Time Format (YYYY-MM-DD HH-MM-SS)
TimeStart = '2014-06-30 13:23:46'
TimeEnd = datetime.datetime.now()
我想编写一个函数,使用浮点数据类型返回以分钟为单位的时间差。如果时间差为90秒,则函数返回1.5。这是我写的函数,但不幸的是,它远远不能工作

def getTimeDifferenceFromNow(TimeStart, TimeEnd):
    timeDiff = TimeEnd - TimeStart
    return divmod(timeDiff.days * 86400 + timeDiff.seconds, 60)  
在Python2.7中如何实现这一点?如果我编写的函数与正确答案相差太远,请忘记它。

在执行此操作之前,您需要解析输入字符串:

TimeStart = datetime.datetime.strptime(TimeStart, '%Y-%m-%d %H:%M:%S')
在调用
getTimeDifferenceFromNow()之前,我会这样做

减去两个
datetime
对象后,生成的
timedelta
有一个方便的方法,名为;将其除以60,得到分钟内的增量:

def getTimeDifferenceFromNow(TimeStart, TimeEnd):
    timeDiff = TimeEnd - TimeStart
    return timeDiff.total_seconds() / 60
演示:

>>> 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