【问题标题】:Compare if datetime.timedelta is between two values比较 datetime.timedelta 是否在两个值之间
【发布时间】:2015-02-02 22:32:44
【问题描述】:

我在 python 中有一个 datetime.timedelta 时间对象(例如 00:02:00)我想检查这个时间是否小于 5 分钟并且大于 1 分钟。

我不确定如何构造 timedelta 对象,也不确定这是否是比较时间的正确格式。有人知道最有效的方法吗?

【问题讨论】:

  • 你不知道如何构造timedelta对象是什么意思?你看过文档吗?你试过了吗?

标签: python


【解决方案1】:

所以如果你从一个严格而精确的'HH:MM:SS' 格式的字符串开始,timedelta 不直接提供字符串解析功能,但不难做到:

import datetime

def parsedelta(hhmmss):
    h, m, s = hhmmss.split(':')
    return datetime.timedelta(hours=int(h), minutes=int(m), seconds=int(s))

如果您需要解析许多不同的变体,最好寻找第三方包,例如 dateutil

一旦您拥有timedelta 实例,您请求的检查就很简单,例如:

onemin = datetime.timedelta(minutes=1)
fivemin = datetime.timedelta(minutes=5)

if onemin < parsedelta('00:02:00') < fivemin:
    print('yep')

将如预期的那样显示yep

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-12-31
    • 2013-01-04
    • 2019-06-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多