代码之家  ›  专栏  ›  技术社区  ›  Adam Matan

python 2.6.5:用timedelta划分timedelta

  •  16
  • Adam Matan  · 技术社区  · 14 年前

    我想分一份 timedelta 对象与另一个对象一起计算服务器正常运行时间:

    >>> import datetime
    >>> installation_date=datetime.datetime(2010,8,01)
    >>> down_time=datetime.timedelta(seconds=1400)
    >>> server_life_period=datetime.datetime.now()-installation_date
    >>> down_time_percentage=down_time/server_life_period
    Traceback (most recent call last):
      File "<stdin>", line 1, in <module>
    TypeError: unsupported operand type(s) for /: 'datetime.timedelta' 
               and 'datetime.timedelta'
    

    我知道这个 has been solved in Python 3.2 但是,除了计算微秒数、秒数和天数并进行划分之外,在以前的Python版本中有没有一种方便的方法来处理它呢?

    谢谢,

    亚当

    1 回复  |  直到 11 年前
        1
  •  30
  •   Engineer2021    11 年前

    在python_2.7中,有 a .total_seconds() method 要计算TimeDelta中包含的总秒数,请执行以下操作:

    >>> down_time.total_seconds() / server_life_period.total_seconds()
    0.0003779903727652387
    

    否则,除了计算总微秒(对于版本 <二点七 )

    >>> def get_total_seconds(td): return (td.microseconds + (td.seconds + td.days * 24 * 3600) * 1e6) / 1e6
    ... 
    >>> get_total_seconds(down_time) / get_total_seconds(server_life_period)
    0.0003779903727652387