【问题标题】:calculate time interval in minutes between two timestamps python计算两个时间戳python之间的时间间隔(以分钟为单位)
【发布时间】:2021-05-12 10:22:18
【问题描述】:

我有两个时间戳:

time1= "2020-01-25T01:47:35.431Z"
time2="2020-01-25T02:02:57.500Z"

我使用下面的函数计算两者之间的时间间隔,并以分钟为单位返回并四舍五入到小数点后两位。

def app_run2_min_diff(time1,time2):
    time1= str(time1)
    time1datetime.strptime(time1,'%Y-%m-%dT%H:%M:%S.%fZ')
    time2= str(time2)
    time2=datetime.strptime(time2,'%Y-%m-%dT%H:%M:%S.%fZ')
    sec1=time1.strftime('%S')
    sec2=time2.strftime('%S')
    min_dif=round((float(sec2)-float(sec1)/60),2)
    return min_dif  

我的逻辑是先减去秒差再转换成分钟。 我得到的 min_dff 是 34.42 ,但正确答案是 15.35。我上面的逻辑有什么问题?

【问题讨论】:

  • min_dif=round(((float(sec2)-float(sec1))/60) ,2) float(sec1)/60 在您的情况下首先执行
  • @RustemQarayev 谢谢我解决了这个问题,但仍然没有得到正确的答案
  • 因为您只是减去秒数,而不是实际时间,请检查:stackoverflow.com/questions/10663720/…

标签: python function timestamp


【解决方案1】:

更简单的方法是将datetime.strptime 对象转换为datetime.timedelta,只需减去两个日期即可。然后应用简单的算术会给你结果。

from datetime import datetime

time1= "2020-01-25T01:47:35.431Z"
time2="2020-01-25T02:02:57.500Z"


def to_minutes(td):
    return td.days*1440 + td.seconds/60


def app_run2_min_diff(time1,time2):
    time1 = datetime.strptime(time1,'%Y-%m-%dT%H:%M:%S.%fZ')
    time2 = datetime.strptime(time2,'%Y-%m-%dT%H:%M:%S.%fZ')

    time_diff = time2 - time1
    
    min_dif = round(to_minutes(time_diff), 2)
    return min_dif

app_run2_min_diff(time1, time2) 的结果将是:

15.37

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2020-01-02
    • 2021-01-04
    • 2011-11-29
    • 2020-06-08
    • 1970-01-01
    • 2021-11-14
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多