在python日期前6个月

时间:2015-07-30 04:28:36

标签: python datetime

我想在python之前的6个月计算。所以在日期(例如,8月8日)发生任何问题。我们可以使用timedelta()函数来解决这个问题。我们通过几个月就像 date = now - timedelta(天=天)而不是参数天。

3 个答案:

答案 0 :(得分:1)

timedelta不支持数月,但您可以尝试使用dateutil.relativedelta进行计算,这可以支持数月。

示例 -

>>> from dateutil import relativedelta
>>> from datetime import datetime
>>> n = datetime.now()

>>> n - relativedelta.relativedelta(months=6)
datetime.datetime(2015, 1, 30, 10, 5, 32, 491815)

>>> n - relativedelta.relativedelta(months=8)
datetime.datetime(2014, 11, 30, 10, 5, 32, 491815)

答案 1 :(得分:0)

如果您只对6个月前的月份感兴趣,请尝试:

import datetime

month = datetime.datetime.now().month - 6
if month < 1:
    month = 12 + month  # At this point month is 0 or a negative number so we add

答案 2 :(得分:0)

以下功能应该适用于月份添加和月份减法。

import datetime
import calendar

def add_months(sourcedate, months):
     month = sourcedate.month - 1 + months
     year = sourcedate.year + month / 12
     month = month % 12 + 1
     day = min(sourcedate.day,calendar.monthrange(year,month)[1])
     return datetime.date(year,month,day)

#Example: Get today    
dateToday = datetime.date.today()

#Substract 6 month from Today
print add_months(dateToday ,-6)