将持续时间格式从 float 转换为 Month:Days:Hours:Minutes:Seconds in python 3.x
Convert duration format from float to Month:Days:Hours:Minutes:Seconds in python 3.x
我有一个浮点数 12634.0 作为持续时间结果。
我想把它转换成这种格式:
Months:Days:Hours:Minutes:Seconds (00:00:03:30:34)
我怎样才能做到这一点?谢谢
你可以试试
import datetime
print (str(datetime.timedelta(seconds=12634))
另一种解决方案,如果您需要其他信息,例如周数:
import datetime
def time_in_sec(time_sec):
delta = datetime.timedelta(seconds=time_sec)
delta_str = str(delta)[-8:]
hours, minutes, seconds = [int(val) for val in delta_str.split(":", 3)]
weeks = delta.days // 7
days = delta.days % 7
return "{}:{}:{}:{}:{}".format(weeks, days, hours, minutes, seconds)
def time_in_sec2(seconds):
WEEK = 60 * 60 * 24 * 7
DAY = 60 * 60 * 24
HOUR = 60 * 60
MINUTE = 60
weeks = seconds // WEEK
seconds = seconds % WEEK
days = seconds // DAY
seconds = seconds % DAY
hours = seconds // HOUR
seconds = seconds % HOUR
minutes = seconds // MINUTE
seconds = seconds % MINUTE
return "{}:{}:{}:{}:{}".format(weeks, days, hours, minutes, seconds)
def main():
print(time_in_sec(12634.0))
print(time_in_sec2(12634.0))
结果是:
0:0:3:30:34
0.0:0.0:3.0:30.0:34.0
如果您不想要周等信息,可以简单地删除它
如果您不想要像
这样的依赖项,您可以采用解决方案 2 (time_in_sec2)
import datetime
我有一个浮点数 12634.0 作为持续时间结果。 我想把它转换成这种格式: Months:Days:Hours:Minutes:Seconds (00:00:03:30:34)
我怎样才能做到这一点?谢谢
你可以试试
import datetime
print (str(datetime.timedelta(seconds=12634))
另一种解决方案,如果您需要其他信息,例如周数:
import datetime
def time_in_sec(time_sec):
delta = datetime.timedelta(seconds=time_sec)
delta_str = str(delta)[-8:]
hours, minutes, seconds = [int(val) for val in delta_str.split(":", 3)]
weeks = delta.days // 7
days = delta.days % 7
return "{}:{}:{}:{}:{}".format(weeks, days, hours, minutes, seconds)
def time_in_sec2(seconds):
WEEK = 60 * 60 * 24 * 7
DAY = 60 * 60 * 24
HOUR = 60 * 60
MINUTE = 60
weeks = seconds // WEEK
seconds = seconds % WEEK
days = seconds // DAY
seconds = seconds % DAY
hours = seconds // HOUR
seconds = seconds % HOUR
minutes = seconds // MINUTE
seconds = seconds % MINUTE
return "{}:{}:{}:{}:{}".format(weeks, days, hours, minutes, seconds)
def main():
print(time_in_sec(12634.0))
print(time_in_sec2(12634.0))
结果是:
0:0:3:30:34
0.0:0.0:3.0:30.0:34.0
如果您不想要周等信息,可以简单地删除它
如果您不想要像
这样的依赖项,您可以采用解决方案 2 (time_in_sec2)import datetime