如何在django中将生成的日期格式转换为另一种格式?

时间:2015-06-19 14:03:59

标签: python django date format

我正在django中创建一个应用程序,我有下一个问题:

我有一个具有属性“date”的模型,我以这种格式保存日期:YYYY-MM-DD。

但是当我得到一个实例,并且我得到该实例的日期属性值时,日期为:“2015年10月10日”,以便我收到错误:

[u"'Oct.' value has an invalid date format. It must be in YYYY-MM-DD format."]

如何解决此错误?有没有办法将“2015年10月10日”格式化为YYYY-MM-DD?

非常感谢你!

1 个答案:

答案 0 :(得分:1)

对于输入Oct. 10, 2015,您需要这样写:

from datetime import datetime
datetime.strptime('Oct. 10, 2015', '%b. %d, %Y')

Django的DateField直接保存datetime对象,因此将输入字符串转换为所需的格式。

您可以尝试使用以下格式输入以下数据:

class SomeForm(forms.modelform):
    date_input_field = forms.CharField()

    def clean_date_input_field(self):
        try: 
            return datetime.strptime(self.cleaned_data['date_input_field'], '%d/%m/%Y')
        except:
             return datetime.strptime(self.cleaned_data['date_input_field'], '%b. %d, %Y')
     class Meta:
          ...

或在input_format中添加'%b. %d, %Y'