Python 时间模块-strptime Django验证错误
我编写了一个函数来返回当前会计年度日期:Python 时间模块-strptime Django验证错误,python,django,Python,Django,我编写了一个函数来返回当前会计年度日期: def get_fiscal_year(start_month=7): now = datetime.datetime.now() if now.month >= start_month: return [time.strptime(str(now.year) + '-07-01', '%Y-%m-%d'), time.strptime(str(now.year + 1) + '-06-30', '%Y-%m-%d'
def get_fiscal_year(start_month=7):
now = datetime.datetime.now()
if now.month >= start_month:
return [time.strptime(str(now.year) + '-07-01', '%Y-%m-%d'), time.strptime(str(now.year + 1) + '-06-30', '%Y-%m-%d')]
return [time.strptime(str(now.year - 1) + '-07-01', '%Y-%m-%d'), time.strptime(str(now.year) + '-06-30', '%Y-%m-%d')]
然后我在代码中使用它,如下所示:
dates = get_fiscal_year()
start_date = dates[0]
end_date = dates[1]
model = DevelopmentAssessment.objects.filter(status_id__in=[8, 7, 10], decision_date__range=[start_date, end_date])
但是它抛出了一个错误:
[u"'time.struct_time(tm_year=2012, tm_mon=7, tm_mday=1, tm_hour=0, tm_min=0, tm_sec=0, tm_wday=6, tm_yday=183, tm_isdst=-1)' value has an invalid date format. It must be in YYYY-MM-DD format."]
据我所知,是那种格式的,你知道怎么回事吗
干杯,
Ben从您的函数
获取会计年度
返回时间的dict.struct\u time
对象,而\u range()
需要日期
键入对象
我建议将函数更改为返回date
对象
def get_fiscal_year(start_month=7):
now = datetime.datetime.now()
if now.month >= start_month:
return [datetime.date(year=now.year, month=7, day=1),
datetime.date(year=now.year + 1, month=6, day=30)]
return [datetime.date(year=now.year-1, month=7, day=1),
datetime.date(year=now.year, month=6, day=30)]