我有时间了.我想要那些日子,小时和分钟 - 无论是作为元组还是字典......我都不会被激怒.
多年来我必须用十几种语言做了十几次这样的事情,但Python通常对一切都有一个简单的答案,所以我想在破坏一些令人作呕的简单(但冗长)数学之前我会问这里.
Fooz先生提出了一个很好的观点.
我正在处理"列表"(有点像ebay列表),其中每个都有一个持续时间.我正试图找到剩下的时间when_added + duration - now
我是否正确地说这不会导致夏令时?如果没有,添加/减去一小时的最简单方法是什么?
如何将超过24小时的timedelta返回或转换为包含总小时数和分钟数(例如26:30)而不是"1天2:30"的对象?
从我的数据库中获取时间为15:15:15 h / m / s的行时。我在timedelta对象中获得了它们,我希望在time对象中获得它们,因此以后可以将它们与日期对象组合在一起并获得datetime对象。
for row in results:
startDate = row['startDate']
StartTime = row['startTime']
myListStartDate.append(datestart)
myListTimeStart.append(startTime)
Run Code Online (Sandbox Code Playgroud)
当我将所有startTimes放入列表并打印列表时,我得到datetime.timedelta(0,54900)。那么如何将timedelta转换为时间对象,以便以后可以将其与其他时间对象进行比较。
我如何格式化大于24小时的timedelta以在Python中仅包含小时显示?
>>> import datetime
>>> td = datetime.timedelta(hours=36, minutes=10, seconds=10)
>>> str(td)
'1 day, 12:10:10'
# my expected result is:
'36:10:10'
Run Code Online (Sandbox Code Playgroud)
我通过以下方式达到目标:
import datetime
td = datetime.timedelta(hours=36, minutes=10, seconds=10)
seconds = td.total_seconds()
hours = seconds // 3600
minutes = (seconds % 3600) // 60
seconds = seconds % 60
str = '{}:{}:{}'.format(int(hours), int(minutes), int(seconds))
>>> print(str)
36:10:10
Run Code Online (Sandbox Code Playgroud)
有没有更好的办法?