Hacker News new | ask | show | jobs
by LeoPanthera 838 days ago
> now.replace(year=now.year-1)

Yeah but this is bad code. Python certainly does have a "clean" way to subtract a year, you subtract a datetime.timedelta object.

1 comments

timedelta doesn't take "years" as a parameter, for the reasons others have listed here. It's ambiguous what subtracting by a year means, and there's no real sensible default either.
relativedelta will do it:

  from dateutil.relativedelta import relativedelta
  one_year = relativedelta(years=1)