【问题标题】:How to add times that has HH:MM:SS,XX format in python如何在python中添加具有HH:MM:SS,XX格式的时间
【发布时间】:2021-09-15 06:18:50
【问题描述】:

在理解这种时间格式方面,我缺乏专业知识。我猜,XXXXXX/1000 秒?

尽管如此,我正在尝试添加一个包含此类时间戳的文本文件并总结总数。

下面是一个例子,

00:03:33,950
00:03:34,590

这是我目前所拥有的,但我不确定如何将最后一部分相加

Hours = s.split(":")[0]
Minutes = s.split(":")[1]
Seconds = (s.split(":")[2]).split(",")[0]
Total_seconds = (Hours * 3600) + (Minutes * 60) + (Seconds)

Total_Time = str(datetime.timedelta(seconds=Total_seconds))

【问题讨论】:

  • @Sayse 谢谢!将其添加到我的武器库中:)
  • strptime(p 表示解析)可能会有所帮助,但我不确定它如何与 timedeltas 一起工作。
  • @Norrius strptime/strftime 不适用于 timedeltas,参见例如stackoverflow.com/q/538666/10197418

标签: python python-3.x datetime time timedelta


【解决方案1】:

其实你已经成功了一半。

您所要做的就是将您的strs 转换为int 并将它们作为参数传递给适当的timedelta 关键字。

from datetime import timedelta

Hours = int(s.split(":")[0])
Minutes = int(s.split(":")[1])
Seconds = int((s.split(":")[2]).split(",")[0])
Milliseconds = int((s.split(":")[2]).split(",")[1])

duration = timedelta(hours=Hours, minutes=Minutes, seconds=Seconds, milliseconds=Milliseconds)

添加所需的所有持续时间后,str() 是最终的 timedelta 对象。

>>> durations_1 = timedelta(hours=2,milliseconds=750)
>>> durations_2 = timedelta(milliseconds=251)
>>> durations_sum = durations_1 + durations_2
>>> str(durations_sum)
'2:00:01.001000'
>>> str(durations_sum).replace('.',',')
'2:00:01,001000'

【讨论】:

    【解决方案2】:

    Reed this documentation about time.strftime() 格式

    例如

    from time import gmtime, strftime
    strftime("%a, %d %b %Y %H:%M:%S +0000", gmtime())
    
    --'Thu, 28 Jun 2001 14:17:15 +0000'--
    

    【讨论】:

    • 我不确定这如何回答这个问题。 strftime("00:03:33,950", gmtime()) 会给我00:03:33,950...
    猜你喜欢
    • 2016-12-18
    • 1970-01-01
    • 2013-09-15
    • 1970-01-01
    • 1970-01-01
    • 2015-03-08
    • 1970-01-01
    • 2019-09-24
    • 1970-01-01
    相关资源
    最近更新 更多