【问题标题】:Convert timestamp in HH:TT:SS format to seconds将 HH:TT:SS 格式的时间戳转换为秒
【发布时间】:2015-06-03 14:11:08
【问题描述】:

我正在尝试在py2.7上创建一个代码来计算HH:MM:SS时间格式的时差并将其转换为秒。

原来我不得不像这样调用秒:

    timediff = a-b
    seconds = timediff.total_seconds() #This was the simple solution 

我收到的错误是:

AttributeError: 'datetime.timedelta' object has no attribute 'split'       

感谢 Ajay 和 J.F. Sebastian 的解决方案

【问题讨论】:

  • 不要再这样删除你的问题了。

标签: python python-2.7 split timedelta python-datetime


【解决方案1】:

你可以从datetime.timedelta使用totalseconds()

In [4]: t = time.strptime('00:01:25','%H:%M:%S')

In [5]: datetime.timedelta(hours=t.tm_hour,minutes=t.tm_min,seconds=t.tm_sec).total_seconds()
Out[5]: 85.0

你的例子:

In [14]: t1='00:01:25'

In [15]: t2='00:01:10'
In [17]: t1 = time.strptime(t1,'%H:%M:%S')

In [18]: t2 = time.strptime(t2,'%H:%M:%S')
In [22]: datetime.timedelta(hours=t1.tm_hour,minutes=t1.tm_min,seconds=t1.tm_sec).total_seconds()-datetime.timedelta(hours=t2.tm_hour,minutes=t2.tm_min,seconds=t2.tm_sec).total_seconds()
Out[22]: 15.0

【讨论】:

  • 但格式相同'HH:MM:SS' 并检查哪个更大或取绝对值同时取差值或print sum(int(x) * 60 ** i for i,x in enumerate(reversed(t.split(":"))))
【解决方案2】:

AttributeError: 'datetime.timedelta' 对象没有属性 'split'

你快到了。 timediff 在您的代码中是 datetime.timedelta。要获得秒数,只需致电seconds = timediff.total_seconds()

【讨论】:

    猜你喜欢
    • 2021-10-23
    • 2013-08-27
    • 2016-03-04
    • 2016-03-04
    • 2013-03-09
    • 2017-10-24
    • 2011-09-18
    相关资源
    最近更新 更多