Lia*_*hav 5 python time date python-3.x
我想打印一个以hh:mm格式作为字符串进行数学运算后得到的浮点值.目前我有:(在这种情况下的时间等于像9.888888888888886或09:50(我想要的))
time = str(time)
time = time.split(".")
time[1] = float(time[1])
time[1] *= 0.6
time[1] = str(time[1])
Run Code Online (Sandbox Code Playgroud)
当我打印我使用
str(time[0]) + ":" + time[1][:2]
Run Code Online (Sandbox Code Playgroud)
有没有什么办法可以持续达到这个效 使用更高级的输入,我的上述代码无法正常工作,并输出错误的时间.
可选择使用datetime,你可以用简单的格式有位数学,例如:
result = '{0:02.0f}:{1:02.0f}'.format(*divmod(time * 60, 60))
Run Code Online (Sandbox Code Playgroud)
使用 divmod 可以获得除法的余数和商。
minutes = 9.888888888888886*60
hours, minutes = divmod(minutes, 60)
print "%02d:%02d"%(hours,minutes)
Run Code Online (Sandbox Code Playgroud)
输出:
09:53
Run Code Online (Sandbox Code Playgroud)
如果你也想要秒数:
seconds = 9.888888888888886*60*60
minutes, seconds = divmod(seconds, 60)
hours, minutes = divmod(minutes, 60)
print "%02d:%02d:%02d"%(hours,minutes,seconds)
Run Code Online (Sandbox Code Playgroud)
>>> import datetime
>>> datetime.timedelta(hours=9.888888888888886)
datetime.timedelta(0, 35600)
>>> str(datetime.timedelta(hours=9.888888888888886))
'9:53:20'
>>> str(datetime.timedelta(hours=9.888888888888886)).rsplit(':', 1)[0]
'9:53'
Run Code Online (Sandbox Code Playgroud)
>>> datetime.datetime.combine(datetime.date.today(), datetime.time()) + \
... datetime.timedelta(hours=9.888888888888886)
datetime.datetime(2014, 12, 16, 9, 53, 20)
>>> _.strftime('%H:%M')
'09:53'
Run Code Online (Sandbox Code Playgroud)