Python-如何计算两个时间字符串之间的时间间隔

发布于 2021-02-02 23:15:04

我有两次,开始时间和停止时间,格式为10:33:26(HH:MM:SS)。我需要两次之间的区别。我一直在浏览Python文档并在线搜索,我想这可能与datetime和/或time模块有关。我无法使其正常工作,并且仅在涉及约会时才继续寻找方法。

最终,我需要计算多个持续时间的平均值。我得到了工作上的时差,并将它们存储在列表中。我现在需要计算平均值。我正在使用正则表达式解析原始时间,然后进行区别。

对于平均,我应该转换为秒然后平均吗?

关注者
0
被浏览
111
1 个回答
  • 面试哥
    面试哥 2021-02-02
    为面试而生,有面试问题,就找面试哥。

    是的,datetime这里绝对是你所需要的。具体来说,是strptime将字符串解析为时间对象的函数。

    from datetime import datetime
    s1 = '10:33:26'
    s2 = '11:15:49' # for example
    FMT = '%H:%M:%S'
    tdelta = datetime.strptime(s2, FMT) - datetime.strptime(s1, FMT)
    

    这样就得到了一个timedelta包含两次差异的对象。你可以执行此操作,例如将其转换为秒或将其添加到另一个datetime

    如果结束时间早于开始时间,则返回否定结果,例如s1 = 12:00:00s2 = 05:00:00。在这种情况下,如果你希望代码假定间隔经过午夜(即应该假定结束时间永远不早于开始时间),则可以在上面的代码中添加以下几行:

    if tdelta.days < 0:
        tdelta = timedelta(days=0,
                    seconds=tdelta.seconds, microseconds=tdelta.microseconds)
    

    (当然,你需要在from datetime import timedelta某处添加内容)。感谢JF Sebastian指出了这个用例。



知识点
面圈网VIP题库

面圈网VIP题库全新上线,海量真题题库资源。 90大类考试,超10万份考试真题开放下载啦

去下载看看