Можно предположить, что date_parsed
произошло в течение последних 365 дней, верно?
В этом случае используйте .replace()
, чтобы изменить год этой даты, сравнить его с текущей датой и адаптировать год в соответствии с результатом этого сравнения: если дата более поздняя, то проанализированная дата должна быть адаптированным, в остальном все нормально:
from datetime import datetime
current_time = datetime.now()
date_parsed = datetime.strptime('Fri Apr 27 14:09:53', '%a %b %d %H:%M:%S').replace(year=current_time.year)
if date_parsed > current_time:
date_parsed = date_parsed.replace(year=current_time.year - 1)
print(date_parsed, current_time, current_time - date_parsed)
например. с датой в «прошлом»:
2018-04-27 14:09:53 2018-04-27 18:28:10.484371 4:18:17.484371
например. с датой в «будущем»:
2017-04-30 14:09:53 2018-04-27 18:30:48.864598 362 days, 4:20:55.864598