如何从日期时间列表中减去今天的日期时间以查找人的年龄?

时间:2015-03-18 09:15:42

标签: python datetime python-3.x

我从一个生日列表开始,看起来像这样:01/01/1900,我已经命名为dob。我想通过减去当前时间来计算他们当前的年龄。所以我做了以下事情:

from datetime import datetime

parsed_date = [datetime.strptime(x, '%m/%d/%Y') for x in dob]
now = datetime.now()

age = now - parsed_date

parsed_date是一个由

组成的列表
[datetime.datetime(1984, 11, 11, 0, 0),
 datetime.datetime(1980, 10, 2, 0, 0),
 datetime.datetime(1991, 5, 13, 0, 0),
 datetime.datetime(1982, 8, 28, 0, 0), ... ]

不幸的是,在这个年龄我收到以下错误:

TypeError: unsupported operand type(s) for -: 'datetime.datetime' and 'list'

我不明白为什么会出现这个错误,如果它看起来像是我减去两个日期时间来获得timedelta。如果我单独做

now - datetime(1984, 11, 11, 0, 0)

然后它可以工作,但如果我这样做

now - datetime.datetime(1984, 11, 11, 0, 0)

我收到此错误:

AttributeError: type object 'datetime.datetime' has no attribute 'datetime'

1 个答案:

答案 0 :(得分:1)

而不是:

age = now - parsed_date

使用此:

ages = [now - date for date in parsed_date]