我的問題看起來很常見,但我在網站上找不到答案。 我想兩個日期在python結合起來,我用這個:比較兩個日期時間的類型錯誤
delta = 2012-04-07 18:54:40 - 2012-04-07 18:54:39
但我得到一個錯誤: TypeError: unsupported operand type(s) for -: 'str' and 'str'
我理解,但我不知道如何把它的正確方法。
你有什麼想法嗎?
Thks!
我的問題看起來很常見,但我在網站上找不到答案。 我想兩個日期在python結合起來,我用這個:比較兩個日期時間的類型錯誤
delta = 2012-04-07 18:54:40 - 2012-04-07 18:54:39
但我得到一個錯誤: TypeError: unsupported operand type(s) for -: 'str' and 'str'
我理解,但我不知道如何把它的正確方法。
你有什麼想法嗎?
Thks!
你減去strings
,不datetime.datetime
對象。嘗試使用strptime
方法將字符串轉換爲datetime.datetime
。
>>> delta = datetime.datetime.strptime('2012-04-07 18:54:40', '%Y-%m-%d %H:%M:%S') \
- datetime.datetime.strptime('2012-04-07 18:54:39', '%Y-%m-%d %H:%M:%S')
>>> delta
datetime.timedelta(0, 1)
讓他們約會!
>>> import datetime
>>> datetime.datetime.now()
datetime.datetime(2013, 5, 13, 10, 25, 6, 20914)
>>> datetime.datetime(2013, 5, 13, 10, 25, 6, 20914)
datetime.datetime(2013, 5, 13, 10, 25, 6, 20914)
>>> datetime.datetime(2013, 5, 13, 10, 25, 6, 20914) - datetime.datetime(2013, 5, 13, 10, 14, 6, 20914)
datetime.timedelta(0, 660)
>>>
謝謝,但我一直在尋找其他答案。 – Gabriel 2013-05-13 17:46:55
如果你想用日期時間計算,你首先必須解析你得到的日期字符串。
正如前面所提到的,一種可能性是無效的。您還可以使用python-dateutil
:
import dateutil.parser
dateutil.parser.parse("2012-04-07 18:54:40") - dateutil.parser.parse("2012-04-07 18:54:39")
# datetime.timedelta(0, 1)
這更容易使用。此外,dateutil中還有很多其他有用的日期處理功能。
非常感謝,這就是我一直在尋找的! – Gabriel 2013-05-13 17:36:10