You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

hh:mm:ss时间与24小时占比浮点数的双向转换方法咨询

hh:mm:ss与24小时占比浮点数的双向转换方法

一、从hh:mm:ss转换为24小时占比浮点数

核心逻辑是计算该时间的总秒数占一天总秒数(86400秒)的比例,代码实现如下:

time_str = "18:52:18"
h, m, s = map(int, time_str.split(":"))
total_seconds = h * 3600 + m * 60 + s
float_val = total_seconds / 86400
print(float_val)  # 输出0.786331018518518,与给定值匹配

二、借助datetime模块简化双向转换

1. 浮点数转hh:mm:ss

利用timedelta计算对应时长,结合datetime格式化输出:

from datetime import datetime, timedelta

val = 0.786331018518518
delta = timedelta(days=val)
time_obj = datetime.min + delta
print(time_obj.strftime("%H:%M:%S"))  # 输出18:52:18

2. hh:mm:ss转浮点数

将时间字符串转为datetime对象,计算其与当天零点的时间差占一天的比例:

from datetime import datetime

time_str = "18:52:18"
time_obj = datetime.strptime(time_str, "%H:%M:%S")
delta = time_obj - datetime(time_obj.year, time_obj.month, time_obj.day)
float_val = delta.total_seconds() / 86400
print(float_val)  # 输出0.786331018518518

三、原浮点数转时间方法的简化优化

用divmod函数简化分步计算逻辑:

val = 0.786331018518518
total_hours = val * 24
hour, rem = divmod(total_hours, 1)
minute, rem = divmod(rem * 60, 1)
seconds = int(rem * 60)
print(f"{int(hour)}:{int(minute)}:{seconds}")  # 输出18:52:18

内容的提问来源于stack exchange,提问作者Rapid1898

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.11 01:31:08