将timedelta转换为浮点数

时间:2014-01-28 19:10:22

标签: python datetime python-2.7 floating-point timedelta

我从减去两个日期时间得到了一个timedelta对象。我需要将此值作为浮点进行进一步计算。 我发现的所有内容都可以使用浮点进行计算,但结果却是如此 仍然是一个timedelta对象。

time_d = datetime_1 - datetime_2
time_d_float = float(time_d)

不起作用。

5 个答案:

答案 0 :(得分:53)

您可以使用total_seconds方法:

time_d_float = time_d.total_seconds()

答案 1 :(得分:14)

在Python的最新版本中,您可以将两个timedelta划分为浮点数。如果您需要以秒为单位的值,这非常有用。

time_d_min = time_d / datetime.timedelta(minutes=1)
time_d_ms  = time_d / datetime.timedelta(milliseconds=1)

答案 2 :(得分:3)

你可以使用 numpy 解决这个问题:

- name: public key
  copy:
    src: /Users/me/Documents/keys/id_rsab
    dest: /home/unpriv/.ssh/
    owner: unpriv
    group: unpriv
    mode: 0600
    backup: yes

希望它有用!

答案 3 :(得分:1)

如果您需要将天数作为浮动数字,则可以使用timedelta的天数属性

time_d = datetime_1 - datetime_2
number_of_days = float(time_d.days)

答案 4 :(得分:-4)

之前我遇到了同样的问题,我使用timedelta.total_seconds将估计的持续时间变为秒,并使用浮点数并且它可以正常工作。 我希望这适合你。

from datetime import timedelta,datetime

time_d = datetime_1 - datetime_2

time_d.total_seconds()