我从一个生日列表开始,看起来像这样: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'
答案 0 :(得分:1)
而不是:
age = now - parsed_date
使用此:
ages = [now - date for date in parsed_date]