我在我的应用设置中使用USE_L10N = True
。据我所知,这个设置让Django根据用户当前的语言环境调整日期格式。
因此,在管理员中,我的包含DateField的模型在格式为“%d /%m /%Y”的表单中正确表示。
我遇到的问题是我想从代码中创建一个新对象。我有一个CSVParse自定义函数解析CSV文件和创建对象。 CSV中的一列具有与上述相同的格式(例如“2015年12月17日”)。我试图用下面的行解析日期,但它返回“无”。在date_parse的文档中,我可以看到它表示格式错误。
from django.utils import dateparse
date_csv = "18/12/2014"
date = dateparse.parse_date(date_csv)
我错过了什么? 感谢
答案 0 :(得分:1)
Django dateparse使用date_re
(正则表达式)parse_date
而date_re
格式为year-month-day
date_re = re.compile(
r'(?P<year>\d{4})-(?P<month>\d{1,2})-(?P<day>\d{1,2})$'
)
您提供的输入格式为day/month/year
,因此您获得了None
。
答案 1 :(得分:1)
查看strptime
import time
date_csv = "18/12/2014"
date = time.strptime(date_csv, "%d/%m/%Y")