【发布时间】:2018-06-04 06:59:59
【问题描述】:
如何在 python 代码中将 10.5 转换为 10:30(10 小时 30 分钟)。
现在 time = 10.5 我需要结果 time = 10:30
任何简单的解决方案?
全部求助
【问题讨论】:
-
你的代码在哪里
如何在 python 代码中将 10.5 转换为 10:30(10 小时 30 分钟)。
现在 time = 10.5 我需要结果 time = 10:30
任何简单的解决方案?
全部求助
【问题讨论】:
试试这个:
时间 = 10.5
print '{0:02.0f}:{1:02.0f}'.format(*divmod(float(time) * 60, 60))
10:30
【讨论】:
divmod 文档的链接?
将数字拆分为整数部分和小数部分,然后将小数部分乘以 60 并将它们重新组合在一起:
t = 10.5
hour, minute = divmod(t, 1)
minute *= 60
result = '{}:{}'.format(int(hour), int(minute))
# result: 10:30
另请参阅divmod 函数和this question 的文档,了解将浮点数拆分为两部分的其他方法。
【讨论】:
您可以将原始浮点值作为hours 传递给datetime.timedelta(),然后以我认为最舒服的方式对其进行操作:
from datetime import datetime, timedelta
td = timedelta(hours=10.5)
dt = datetime.min + td
print("{:%H:%M}".format(dt))
print(td.total_seconds())
【讨论】: