1

現在の会計年度の日付を返す関数を作成しました。

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."]

私が知る限り、それはその形式であると言えますが、何が起こっているのでしょうか?

乾杯、ベン

4

1 に答える 1

2

あなたの関数から、オブジェクトget_fiscal_yearのdictを返していますが、タイプオブジェクトが必要です。time.struct_time__range()date

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)]    
于 2012-09-14T04:11:47.023 に答える