如何在现在到月底获得日期范围?

时间:2011-09-08 11:29:02

标签: python python-datetime

我使用datetime,我有:

delta = ((datetime.date.today() + datetime.timedelta(days=1)) - datetime.timedelta(???)).isoformat()

我需要更换???从那天到月底。

怎么做?

3 个答案:

答案 0 :(得分:5)

要计算当前月末日期,请取当月的第一天,加1个月并减去1天。例如,对于9月28日,您最终会得到

1 September + 1 month = 1 October
1 October - 1 day = 30 September.

答案 1 :(得分:3)

import datetime

d = datetime.date(2013,12,8)

last_day = datetime.date(d.year, (d.month+1)%12, 1) - datetime.timedelta(1,0,0)

答案 2 :(得分:0)

为了妥善处理新一年的约会,我发现dateutil.relativedelta是更好的选择。

另见How to increment datetime month in python

import datetime
from dateutil.relativedelta import relativedelta

d = datetime.date(2013,12,8)

last_day = datetime.date(d.year, d.month, 1)+relativedelta(months=1, days=-1)