71
It should be %Y-%m-%d
:
>>> s = "2014-04-07"
>>> datetime.datetime.strptime(s, "%Y-%m-%d").date()
datetime.date(2014, 4, 7)
According to the documentation:
%Y
stands for a year with century as a decimal number%m
– month as a zero-padded decimal number%d
– day of the month as a zero-padded decimal number
37
It might be convenient to use django’s dateparse in this case.
from django.utils.dateparse import parse_date
date_str = request.POST.get('date')
date = parse_date(date_str)
- [Django]-How to display the current year in a Django template?
- [Django]-How to POST a django form with AJAX & jQuery
- [Django]-UUID('…') is not JSON serializable
11
django.utils.dateparse.parse_date
function will return None
if given date not in %Y-%m-%d
format
I have not found a function in django source code to parse string by DATE_INPUT_FORMATS
. So I wrote a custom helper function for that and
I have added to here for help others.
from datetime import datetime
from django.utils.formats import get_format
def parse_date(date_str):
"""Parse date from string by DATE_INPUT_FORMATS of current language"""
for item in get_format('DATE_INPUT_FORMATS'):
try:
return datetime.strptime(date_str, item).date()
except (ValueError, TypeError):
continue
return None
- [Django]-How do I filter query objects by date range in Django?
- [Django]-Render HTML to PDF in Django site
- [Django]-Combining Django F, Value and a dict to annotate a queryset
6
It might be convenient to use Django’s dateparse‘s parse_datetime in this case. you don’t have to explicitly apply the data time format if that is dynamic.
from django.utils.dateparse import parse_datetime
date = parse_datetime(datetime_str)
- [Django]-Django Model MultipleChoice
- [Django]-How to use 'select_related' with get_object_or_404?
- [Django]-How to use pdb.set_trace() in a Django unittest?
Source:stackexchange.com