Вы можете передать необработанное значение с плавающей точкой как 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())