如何从日期中删除3个月?尝试使用relativedelta
,但是我没有lib,所以还有另一种方法吗?
from datetime import datetime
now = datetime.now()
print("timestamp =", now)
答案 0 :(得分:1)
您可以使用:
import datetime
a = datetime.datetime.now()
b = a - datetime.timedelta(weeks=12)
请注意,您不能输入月份,而只能输入几周和几天甚至更短
答案 1 :(得分:0)
也许,用datetime.timedelta
减去可以帮助您估计日期:
import datetime
datetime.datetime(2019,5,31) - datetime.timedelta(3*365.25/12)
该结果并不完全准确,因为它不能以通常的方式说明years年,但是对于一年之内的精度较低的计算就足够了。如果需要准确性,则需要使用以下方法。
对于dateutil.relativedelta
,您需要先使用pip install python-dateutil
安装模块,然后以以下方式使用它:
import datetime
from dateutil.relativedelta import relativedelta
datetime.datetime(2019,5,31) - relativedelta(months=3)
答案 2 :(得分:0)
如果要对日期时间对象执行复杂的操作,我只建议您使用arrow
库来为您处理所有边缘情况。
此库的文档可在这里找到:https://arrow.readthedocs.io/en/latest/
例如您的情况:
>>> import arrow
>>> a = arrow.utcnow()
>>> a
<Arrow [2019-11-20T13:03:52.518238+00:00]>
>>> a.datetime
datetime.datetime(2019, 11, 20, 13, 3, 52, 518238, tzinfo=tzutc())
>>> b = a.shift(months=-3)
>>> b
<Arrow [2019-08-20T13:03:52.518238+00:00]>
>>> b.datetime
datetime.datetime(2019, 8, 20, 13, 3, 52, 518238, tzinfo=tzutc())