前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Python 输入时间字符串以分钟单位计算时间差

Python 输入时间字符串以分钟单位计算时间差

作者头像
我是李超人
发布2020-08-21 01:18:14
1.7K0
发布2020-08-21 01:18:14
举报

之前转载过一篇使用python dateTime模块处理时间差的文章,文章中讲解了如何按照days,hours和seconds单位来计算时间差。这里讲解一下如何使用dateTime模块按照minutes来计算时间差。

dateTime模块本身是没有minutes方式来计算时间差的,只能通过先计算出时间差,在转换成minutes来计算。一开始我是打算使用seconds方式等到时间差,然后再除以60再转换成分钟时间差。但是这种方式存在问题,可以看下下面的效果:

代码语言:javascript
复制
    #时间a减去时间b,获得二者的时间差,参数为时间字符串,例如:2017-03-30 16:54:01.660
    def getTimeDiff(self,timeStra,timeStrb):
        if timeStra<=timeStrb:
            return 0
        ta = time.strptime(timeStra, "%Y-%m-%d %H:%M:%S")
        tb = time.strptime(timeStrb, "%Y-%m-%d %H:%M:%S")
        y,m,d,H,M,S = ta[0:6]
        dataTimea=datetime.datetime(y,m,d,H,M,S)
        y,m,d,H,M,S = tb[0:6]
        dataTimeb=datetime.datetime(y,m,d,H,M,S)
        secondsDiff=(dataTimea-dataTimeb).seconds
        #两者相加得转换成分钟的时间差
        minutesDiff=round(secondsDiff/60,1)
        return minutesDiff

输出:60

发现输出结果为60,而不是2940。这是因为使用seconds方式计算时间差时只能算出在一天内的时间差忽略了天数,所以要得到正确的时间差,需要先计算出days的时间差,再算出seconds的时间差,两者相加再转换成minutes才是正确的时间差。

dateTime在计算时间差的时候,如果单位是秒,是无法计算出大于一天的时间差,需要先计算天的时间差,在计算秒的时间差,两者相加才能得出正确的时间差。

代码语言:javascript
复制
secondsDiff=(dataTimea-dataTimeb).seconds
daysDiff=(dataTimea-dataTimeb).days
#两者相加得转换成分钟的时间差
minutesDiff=daysDiff*1440+round(secondsDiff/60,1)
return minutesDiff

输出:2940

当然,最简单的方式是使用total_seconds的方式计算时间差,再转换成minutes的时间差。

代码语言:javascript
复制
secondsDiff=(dataTimea-dataTimeb).total_seconds()

输出:2940

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2017-06-15 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档