将timedelta值转换为float

时间:2019-02-26 12:59:02

标签: python python-3.x timedelta odoo-12

我需要将timedelta值保存到浮点类型字段中。

这是我的代码:

if self.end_time and self.start_time:
        timediff =self.end_time - self.start_time // Here i get a time.delta value
        self.duration = // here i get an error

TypeError: float() argument must be a string or a number, not
'datetime.timedelta'

我该如何解决?

1 个答案:

答案 0 :(得分:0)

您问题中的代码不完整,但是假设您实际上正在执行以下操作:

self.duration = float(timediff)

…,而您想要的是timediff表示为浮点数的总秒数,您可以使用timedelta.total_seconds()方法获得该秒数:

self.duration = timediff.total_seconds()

这将返回浮点数,因此无需进行转换。