繁体   English   中英

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

[英]How to get the time difference in minutes in python for time expressed in this format?

我正在使用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)  

如何在Python 2.7中完成? 如果它与正确答案相距太远,请忘掉我编写的函数。

您需要先解析输入字符串,然后才能执行以下操作:

TimeStart = datetime.datetime.strptime(TimeStart, '%Y-%m-%d %H:%M:%S')

我会调用getTimeDifferenceFromNow() 之前进行此操作。

减去两个datetime对象后,生成的timedelta有一个方便的方法,称为timedelta.total_seconds() ; 用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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM