📜  datetime 递减日期 python (1)

📅  最后修改于: 2023-12-03 15:00:21.435000             🧑  作者: Mango

Python 中 datetime 递减日期

在 Python 中,可以使用 datetime 模块来处理日期和时间。有时候我们需要递减日期来寻找过去的某个时间点。下面介绍两种递减日期的方法。

方法一:使用 timedelta

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

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 可以支持更多的时间精度,可以很方便地递减指定数量的年、月、日、时、分、秒、微秒。