我想將字符串日期轉換爲django日期格式。我嘗試了一種方法。但沒有工作。Django字符串日期格式
date = datetime.datetime.strptime(request.POST.get('date'),"Y-mm-dd").date()
我得到了這個錯誤。
time data '2014-04-07' does not match format 'Y-mm-dd'
我的代碼有什麼問題。
我想將字符串日期轉換爲django日期格式。我嘗試了一種方法。但沒有工作。Django字符串日期格式
date = datetime.datetime.strptime(request.POST.get('date'),"Y-mm-dd").date()
我得到了這個錯誤。
time data '2014-04-07' does not match format 'Y-mm-dd'
我的代碼有什麼問題。
它應該是%Y-%m-%d
:
>>> s = "2014-04-07"
>>> datetime.datetime.strptime(s, "%Y-%m-%d").date()
datetime.date(2014, 4, 7)
%Y
代表與世紀一年的十進制數%m
- 每月零填充小數號碼%d
- 本月的一天爲零填充的十進制imal號碼希望有所幫助。
在這種情況下使用django的dateparse可能會很方便。
from django.utils.dateparse import parse_date
date_str = request.POST.get('date')
date = parse_date(date_str)
django.utils.dateparse.parse_date
函數將返回None
,如果給定的日期不是%Y-%m-%d
格式
我還沒有發現在Django源代碼的功能由DATE_INPUT_FORMATS
解析字符串。所以我寫了一個自定義幫助函數,並且我已經添加到這裏來幫助其他人。
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
'parse_date'未正常工作espected並返回'None'如果日期不在'%Y-%間%D'格式。 –