将timedelta值转换为float

问题描述 投票:0回答:1

我需要将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'

我该如何解决这个问题?

python python-3.x timedelta odoo-12
1个回答
0
投票

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

self.duration = float(timediff)

...你想要的是timediff作为浮点数表示的总秒数,你可以使用timedelta.total_seconds()方法得到它:

self.duration = timediff.total_seconds()

这将返回一个浮点数,因此不需要转换。

© www.soinside.com 2019 - 2024. All rights reserved.