據我所知,秒和毫秒都可能在datetime.timedelta
出於效率的考慮單獨爲代表,但我只是寫了這個簡單的功能:Missing datetime.timedelta.to_seconds() - > float在Python中?
def to_seconds_float(timedelta):
"""Calculate floating point representation of combined
seconds/microseconds attributes in :param:`timedelta`.
:raise ValueError: If :param:`timedelta.days` is truthy.
>>> to_seconds_float(datetime.timedelta(seconds=1, milliseconds=500))
1.5
>>> too_big = datetime.timedelta(days=1, seconds=12)
>>> to_seconds_float(too_big) # doctest: +ELLIPSIS
Traceback (most recent call last):
...
ValueError: ('Must not have days', datetime.timedelta(1, 12))
"""
if timedelta.days:
raise ValueError('Must not have days', timedelta)
return timedelta.seconds + timedelta.microseconds/1E6
這是對於像值傳遞給time.sleep
或select.select
有用。 爲什麼不像datetime.timedelta
界面的這一部分?我可能會缺少一些角落案例。時間表示似乎有這麼多非顯而易見的角落案例...
我拒絕了幾天,以一定的精度有一個合理的拍攝(我懶得真的算出數學自動取款機,所以這似乎是一個合理的妥協;-)。
問題是什麼? – 2009-07-05 11:57:10
增強了它的實力 - 想知道是否有一個原因,它不包含在界面中。 – cdleary 2009-07-05 22:47:14
這看起來是一個https://stackoverflow.com/questions/21414639/convert-timedelta-to-floating-point它有一個更好的答案。 – outofculture 2014-03-12 23:53:25