回答
日期時間組合方法允許您將時間與增量組合在一起
datetime.combine(date.today(), time()) + timedelta(hours=2)
timedelta可以用通常的 '+' 操作符
>>> timedelta(hours=3)
datetime.timedelta(0, 10800)
>>> timedelta(hours=2)
datetime.timedelta(0, 7200)
>>>
>>> timedelta(hours=3) + timedelta(hours=2)
datetime.timedelta(0, 18000)
>>>
結合您可以閱讀datetime模塊文檔,並在
要添加timedeltas你可以使用內置的運營商+
:
result = timedelta1 + timedelta2
增添了不少timedeltas,你可以用和:
result = sum(timedeltas, datetime.timedelta())
或減少:
import operator
result = reduce(operator.add, timedeltas)
嗯,我希望sum函數也能工作,但它在2.7.3上似乎不適合我。以下失敗:''sum([datetime.timedelta(1),datetime.timedelta(0,14700)])''。 – pelson 2012-11-29 11:44:07
@pelson:你錯過了第二個參數。 'sum([datetime.timedelta(1),datetime.timedelta(0,14700)],datetime.timedelta())給出'datetime.timedelta(1,14700)'。 – 2012-11-29 12:09:40
很酷。謝謝@Mark_Byers,我確實錯過了! – pelson 2012-11-29 17:15:36
一個非常好的簡單介紹由於這個「正常工作」,我認爲這個問題缺乏一些細節...
就像這樣:
>>> import datetime
>>> datetime.timedelta(seconds=10) + datetime.timedelta(hours=5)
datetime.timedelta(0, 18010)
我敢肯定的是,「和」他的意思是他要的總和的基本類型(例如整數),而不是一個DateTime對象的值。
請注意,您始終可以使用dir
函數反映對象,並返回其方法和屬性的列表。
>>> import datetime
>>> time_sum=datetime.timedelta(seconds=10) + datetime.timedelta(hours=5)
>>> time_sum
datetime.timedelta(0, 18010)
>>> dir(time_sum)
['__abs__', '__add__', '__class__', '__delattr__', '__div__', '__doc__', '__eq__', '__floordiv__', '__ge__', '__getattribute__', '__gt__', '__hash__', '__init__', '__le__', '__lt__', '__mul__', '__ne__', '__neg__', '__new__', '__nonzero__', '__pos__', '__radd__', '__rdiv__', '__reduce__', '__reduce_ex__', '__repr__', '__rfloordiv__', '__rmul__', '__rsub__', '__setattr__', '__str__', '__sub__', 'days', 'max', 'microseconds', 'min', 'resolution', 'seconds']
所以在這種情況下,它看起來像我們可能需要秒。
>>> time_sum.seconds
18010
這看起來是對的對我說:
>>> 5*60*60 + 10
18010
這對於'days'組件的timedeltas不起作用:'datetime.timedelta(days = 3,hours = 5,seconds = 10).seconds - > 18010'。它應該是277210s((3 * 24 * 60 * 60)+(5 * 60 * 60)+ 10)。 – RobM 2011-01-18 16:48:08
更好的解決方案:'time_sum.total_seconds()' (包括從天部件以及秒) http://docs.python.org/2/library/datetime.html#datetime.timedelta.total_seconds – balleyne 2013-01-10 06:03:20
(編輯:假設由 「總和timedelta」 你的意思是 「轉換timedelta爲int秒」。)
這是效率很低,但很簡單:
int((datetime.datetime.fromtimestamp(0) + myTimeDelta).strftime("%s"))
這將轉換Unix時間戳(0
)轉換爲日期時間對象,將其添加到它,然後轉換回Unix時間。由於Unix時間計數秒,這是timedelta表示的秒數。
這完全不相關的問題。 – SilentGhost 2011-01-18 16:55:19
不一定。我分享了Goladus的解釋 - user469652想要將timedelta的組件總和爲單個基本類型,例如秒。當我發現這個問題時,這當然是我正在尋找的東西。 – RobM 2011-01-18 17:05:57
更好的解決方案:'myTimeDelta.total_seconds()' http://docs.python.org/2/library/datetime.html#datetime.timedelta.total_seconds – balleyne 2013-01-10 06:04:51
- 1. 如何獲得總和值
- 2. 如何獲得python列表中數字的總和?
- 3. 如何在Python中獲得多個數字的總和
- 4. 如何從該表中獲得總和?
- 5. 如何從數組中獲得總和
- 6. 如何計算timedelta python
- 7. Python:獲得Lambda函數的總和
- 8. Django Python noob - 我如何從總和中獲得NUMBER?
- 9. 如何獲得multidiamesional陣列的總和
- 10. 如何獲得父協會的總和?
- 11. 如何獲得兩行的總和
- 12. 如何獲得值的總和在MySQL
- 13. 如何獲得數組的總和
- 14. 如何獲得表列的總和?
- 15. 如何獲得總和的最大值?
- 16. mysqli_fetch_object - 如何獲得值的總和
- 17. 如何獲得mysql的時間總和?
- 18. 如何獲得單列值的總和()
- 19. 如何獲得具有總和的列
- 20. 如何獲得jqgrid列的總和
- 21. 如何獲得計算值的總和
- 22. 如何獲得每月的總和?
- 23. 如何獲得數組的總和?
- 24. 如何獲得一列的總和
- 25. 如何獲得整場的總和?
- 26. 如何使用python獲得MD5字符串的總和?
- 27. 如何從timedelta獲取值?
- 28. 的Python 2.6.5:除以timedelta與timedelta
- 29. Python的timedelta對象 - 爲timedelta轉換strfdelta和deltafstr功能 - >字符串 - > timedelta
- 30. 如何獲得pandas.read_csv()從CSV文件列中推斷datetime和timedelta類型?
?????不明白這個問題。你有配方嗎? – Phong 2010-10-29 07:27:03
如果你有很多整數對象,你想做什麼?你有什麼嘗試?當你嘗試時發生了什麼? – 2010-10-29 09:17:14
我的猜測是,如果你有tds = [timedelta(),timedelta(),timedelta(),...],他想知道如何做sum(tds)。這是不可能的,因爲sum類型從0開始,因此嘗試執行0 + timedelta()。你當然可以用一些基本的循環duration = timedelta(0);對td tds:持續時間+ = td – orzel 2017-06-07 14:55:08