Python语言精确地从日期中减去月份
示例
使用calendar模块
import calendar from datetime import date def monthdelta(date, delta): m, y = (date.month+delta) % 12,date.year+ ((date.month)+delta-1) //12 if not m: m = 12 d = min(date.day, calendar.monthrange(y, m)[1]) return date.replace(day=d,month=m, year=y) next_month = monthdelta(date.today(), 1) #datetime.date(2016,10,23)
使用dateutils模块
import datetime import dateutil.relativedelta d = datetime.datetime.strptime("2013-03-31", "%Y-%m-%d") d2 = d - dateutil.relativedelta.relativedelta(months=1) #datetime.datetime(2013,2,28,0,0)