×

python 日期 月份 timedelta month

返回一段时间以前的日期

鹭岛小千 鹭岛小千 发表于2021-10-23 13:24:03 浏览705 评论0

抢沙发发表评论

【问题描述】如何返回一段时间以前的日期呢?

比如,今天是2021-10-23,如何返回30天前的日期?

52-1.png

【小千解答】借助datetime模块的timedelta类。

代码如下:

import datetime as dt

jintian = dt.date.today()
rq = jintian - dt.timedelta(days=30)
print(rq)

【知识拓展】

以上代码返回的日期是2021-09-23,那是不是可以考虑直接替换月份数字就行了呢?比如下面这样:

import datetime as dt

jintian = dt.date.today()
rq = jintian.replace(month=jintian.month-1)
print(rq)

结果OK!当前是10月,月份替换成9,那如果今天是1月份的日期,则月份改成12,同时年份数-1,代码改成如下:

import datetime as dt

jintian = dt.date.today()
if jintian.month > 1:
    rq = jintian.replace(month=jintian.month-1)
else:
    rq = jintian.replace(jintian.month-1,12)
print(rq)

结果OK?!

其实这种思路欠妥,因为每个月的天数不一样,如果按整月反推,3月31日往前推一个月是2月的哪天呢?显然不够严谨,这种思路只适合日期的天数不是29、30、31的场景。


打赏码.png


群贤毕至

访客