将浮动时间转换为 python 中的浮动时间

Convert float to float time in python

如何在 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

将数字拆分为整数和小数部分,然后将小数部分乘以 60 并将它们放回一起:

t = 10.5

hour, minute = divmod(t, 1)
minute *= 60
result = '{}:{}'.format(int(hour), int(minute))
# result: 10:30

另请参阅 divmod function and 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())