【问题标题】:Convert float to float time in python在python中将float转换为float时间
【发布时间】:2018-06-04 06:59:59
【问题描述】:

如何在 python 代码中将 10.5 转换为 10:30(10 小时 30 分钟)。

现在 time = 10.5 我需要结果 time = 10:30

任何简单的解决方案?

全部求助

【问题讨论】:

  • 你的代码在哪里

标签: python odoo


【解决方案1】:

试试这个:

时间 = 10.5

print '{0:02.0f}:{1:02.0f}'.format(*divmod(float(time) * 60, 60))

10:30

【讨论】:

  • 你能补充一点解释吗?也许还有指向divmod 文档的链接?
【解决方案2】:

将数字拆分为整数部分和小数部分,然后将小数部分乘以 60 并将它们重新组合在一起:

t = 10.5

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

另请参阅divmod 函数和this question 的文档,了解将浮点数拆分为两部分的其他方法。

【讨论】:

    【解决方案3】:

    您可以将原始浮点值作为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())
    

    【讨论】:

      猜你喜欢
      • 2022-11-16
      • 2011-06-17
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-06-28
      • 1970-01-01
      相关资源
      最近更新 更多