我正在使用Python中的游泳结果(来自外部XLS源),我需要将float转换为时间格式 - 分钟,秒和微秒 - 以执行和减法操作。我正在使用此功能:
from datetime import timedelta
def format_result(result):
seconds = int(result)
microseconds = int((result * 1000000) % 1000000)
output = timedelta(0, seconds, microseconds)
return output
当给定输入为131.39时,输出应为0:02:11.390000,但实际上是0:02:11.389999。如何在没有此精确错误的情况下正确转换此问题?
您需要做的就是将其转换为UTC时间,而format
DateTime
>>> import datetime
>>> datetime.datetime.strftime(datetime.datetime.utcfromtimestamp(131.39), "%M:%S:%f")
'02:11:390000'
您需要做的事情,
import datetime
def format_result(result):
date = datetime.datetime.utcfromtimestamp(result)
output = datetime.datetime.strftime(date, "%M:%S:%f")
return output
print format_result(131.39)
希望这会有所帮助。
我尝试过没有将其转换为 int
,因为它给出了390000的外观。
from datetime import timedelta
def format_result(result):
seconds = int(result)
microseconds = (result * 1000000) % 1000000
output = timedelta(0, seconds, microseconds)
return output
print format_result(131.39)