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

2024-05-14 02:42:35 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在使用Python2.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中如何做到这一点?如果我写的函数离正确答案太远,那就忘掉它吧。


Tags: 函数importformatdatetimetimehh单位ss
1条回答
网友
1楼 · 发布于 2024-05-14 02:42:35

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

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

相关问题 更多 >