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