python'x days ago'到datetime


问题内容

我有显示以下格式的日期的字符串:

x minutes/hours/days/months/years ago

我需要使用python将其解析为日期时间。

看来dateutil无法做到。

有办法吗?


问题答案:

当然可以。您只需要一个timedelta

s = "3 days ago"
parsed_s = [s.split()[:2]]
time_dict = dict((fmt,float(amount)) for amount,fmt in parsed_s)
dt = datetime.timedelta(**time_dict)
past_time = datetime.datetime.now() - dt

顺便说一句,它看起来像dateutila
relativedelta,其行为类似于timedelta,但是构造函数也接受monthsyears在参数中(显然,参数必须是整数)。