代码之家  ›  专栏  ›  技术社区  ›  Sam Brightman

在python中添加持续时间

  •  2
  • Sam Brightman  · 技术社区  · 14 年前

    我想在python中添加一系列拆分。《纽约时报》以“00:08:30.291”开头。我似乎找不到正确的方法来使用python对象或api来使这变得方便/优雅。似乎time对象不使用微秒,所以我正在使用datetime的strtime成功地解析字符串。但是日期时间似乎没有增加,我真的不想超过几天(即23+2小时=25小时)。我可以使用datetime.time,但它们也不添加。时间增量似乎是合适的,但从/到其他事物的转换似乎有点尴尬。也许我遗漏了一些显而易见的东西。我希望能够:

    for timestring in times:
        t = datetime.strptime("%H:%M:%S.%f", timestring).time
        total_duration = total_duration + t
    print total_duration.strftime("%H:%M:%S.%f")
    
    1 回复  |  直到 8 年前
        1
  •  10
  •   Community datashaman    8 年前

    你要处理的是时间差异,这就是为什么使用 datetime.timedelta 仅适用于:

    >>> import datetime
    >>> d1 = datetime.datetime.strptime("00:08:30.291", "%H:%M:%S.%f")
    >>> d1
    datetime.datetime(1900, 1, 1, 0, 8, 30, 291000)
    >>> d2
    datetime.datetime(1900, 1, 1, 0, 2, 30, 291000)
    >>> dt1 = datetime.timedelta(minutes=d1.minute, seconds=d1.second, microseconds=d1.microsecond)
    >>> dt2 = datetime.timedelta(minutes=d2.minute, seconds=d2.second, microseconds=d2.microsecond)
    >>> fin = dt1 + dt2
    >>> fin
    datetime.timedelta(0, 660, 582000)
    >>> str(fin)
    '0:11:00.582000'
    

    另外,请不要使用 sum 对于您的变量,您正在隐藏内置的。