0

我的问题对你来说很常见,但我没有在网站上找到答案。我想在 python 中结合两个日期,我用这个:

delta = 2012-04-07 18:54:40  - 2012-04-07 18:54:39

但我得到一个错误: TypeError: unsupported operand type(s) for -: 'str' and 'str'

我理解它,但我不知道如何以正确的方式转动它。

你有想法吗?

谢谢!

4

3 回答 3

4

您是在减去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)
于 2013-05-13T17:27:56.583 回答
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)
>>> 
于 2013-05-13T17:26:12.130 回答
0

如果你想用日期时间计算,你首先必须解析你得到的日期字符串。

如前所述,一种可能性是 strptime。您还可以使用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 中还有很多其他有用的日期处理功能。

于 2013-05-13T17:34:16.193 回答