You can use datetime
and relativedelta
from the dateutil
package like below:
(you need to install pip install python-dateutil
)
>>> from datetime import datetime
>>> from dateutil.relativedelta import relativedelta
>>> dob_list = ['01-Jan-1990', '11-Aug-1995', '15-Apr-1982', '20-Mar-1988', '25-Nov-1976', '07-Dec-1965', '18-Dec-1977', '25-May-1994', '09-Oct-1981', '19-Feb-1981']
>>> [relativedelta(datetime.now(),datetime.strptime(dob, '%d-%b-%Y')).years for dob in dob_list]
[31, 26, 39, 33, 44, 55, 43, 27, 40, 40]
# for more explanation
>>> [relativedelta(datetime.now(),datetime.strptime(dob, '%d-%b-%Y')) for dob in dob_list]
[relativedelta(years=+31, months=+9, days=+13, hours=+16, minutes=+50, seconds=+14, microseconds=+585158),
relativedelta(years=+26, months=+2, days=+3, hours=+16, minutes=+50, seconds=+14, microseconds=+585268),
relativedelta(years=+39, months=+5, days=+29, hours=+16, minutes=+50, seconds=+14, microseconds=+585325),
relativedelta(years=+33, months=+6, days=+24, hours=+16, minutes=+50, seconds=+14, microseconds=+585379),
relativedelta(years=+44, months=+10, days=+19, hours=+16, minutes=+50, seconds=+14, microseconds=+585426),
relativedelta(years=+55, months=+10, days=+7, hours=+16, minutes=+50, seconds=+14, microseconds=+585469),
relativedelta(years=+43, months=+9, days=+26, hours=+16, minutes=+50, seconds=+14, microseconds=+585504),
relativedelta(years=+27, months=+4, days=+19, hours=+16, minutes=+50, seconds=+14, microseconds=+585546),
relativedelta(years=+40, days=+5, hours=+16, minutes=+50, seconds=+14, microseconds=+585587),
relativedelta(years=+40, months=+7, days=+25, hours=+16, minutes=+50, seconds=+14, microseconds=+585620)]