关于python:Django更改日期格式从YYYY-MM-DD HH:MM到MM / DD / YYYY

Django Change Date Format from YYYY-MM-DD HH:MM to MM/DD/YYYY

本问题已经有最佳答案,请猛点这里访问。

我正试图将输入从模板传递到视图中的查询,但是如果日期不是以django的默认日期格式yyyy-m m-dd传递的,那么它将抛出一个错误。

[U"'11/11/2012"值的格式无效。它必须是YYYY-MM-DD hh:mm[:ss[.uuuuuu]][tz]格式。"]

模板.html

1
2
3
4
5
6
7
8
9
10
11
<form method="GET" action="/BusComm/interactions">
   
        <p>
To Date:
</p>
     
   
        <input type="date" Placeholder="mm-dd-yyyy" name="date_to" id="id_q" value="{{ query }}" float="right">
   
    <input type="submit" value="Submit" />
</form>

视图.py

1
2
3
4
5
6
7
8
9
10
11
 def interactions(request):
    today = datetime.now().date()
    table = interactionsTable(Interactions.objects.all())

    if request.GET.get('date_from'):
            date_from = request.GET.get('date_from')

            table = interactionsTable(Interactions.objects.filter(date__range=[date_from, today]))
            return render(request, 'BusComm/interactions.html',{
            'table': table,
        })

interactionsTable(interactions.object.filter())行是引发错误的行。

我的问题是如何更改django中的日期格式以接受mm/dd/yyyy而不是yyyy-dd-mm?


1
2
3
4
>>> from datetime import datetime
>>> d = datetime.strptime('11/11/2012', '%m/%d/%Y')
>>> d.strftime('%Y/%m/%d')
'2012/11/11'

views.py中,将datetime格式转换为YYYY-DD-MM比强制django在过滤器中接受MM/DD/YYYY更容易。