📅  最后修改于: 2023-12-03 15:00:21.435000             🧑  作者: Mango
在 Python 中,可以使用 datetime
模块来处理日期和时间。有时候我们需要递减日期来寻找过去的某个时间点。下面介绍两种递减日期的方法。
timedelta
可以用来表示一个时间间隔,使用 timedelta
对象可以对时间进行加减操作。下面是一个例子,我们构造一个日期对象 date
,然后利用 timedelta
对象进行递减操作,得到过去某个时间点的日期。
from datetime import datetime, timedelta
date = datetime.now() # 获取当前时间
past_date = date - timedelta(days=7) # 往前推7天
print(past_date.strftime('%Y-%m-%d')) # 输出日期
输出结果:
2022-10-14
上述代码中,timedelta(days=7)
表示要往前推 7 天,past_date.strftime('%Y-%m-%d')
用来格式化输出日期。
relativedelta
可以用来表示一个相对时间间隔,它支持精度到年、月、日、时、分、秒、微秒。下面是一个例子,我们构造一个日期对象 date
,然后利用 relativedelta
对象进行递减操作,得到过去某个时间点的日期。
from datetime import datetime
from dateutil.relativedelta import relativedelta
date = datetime.now() # 获取当前时间
past_date = date - relativedelta(weeks=1) # 往前推1周
print(past_date.strftime('%Y-%m-%d')) # 输出日期
输出结果:
2022-10-14
上述代码中,relativedelta(weeks=1)
表示要往前推 1 周,past_date.strftime('%Y-%m-%d')
用来格式化输出日期。
总结:以上两种方法都可以用来递减日期。其中,timedelta
更加简单粗暴,可以精确到天;而 relativedelta
可以支持更多的时间精度,可以很方便地递减指定数量的年、月、日、时、分、秒、微秒。