2010-02-10 2 views
0

Здравствуйте, как изменить формат даты в моделях для Eg: у меня есть дата = models.DateField (пустой = True, нуль = True)Дата в моделях

по умолчанию он гггг-мм-дд формат, как изменить его на формат dd-mm-yyyy

ответ

2

Дата является датой и не имеет «формата». Формат применяется, когда вы представляете дату в виде строки или когда вы хотите интерпретировать строку как дату.

+0

http://docs.djangoproject.com/en/dev/ref/forms/fields/#datetimefield то, что это все о – seena

+0

Вот и все, как я сказал, «когда вы представляете дату в виде строки или когда хотите интерпретировать строку как дату». –

1

Вы можете поиграть с DATE_INPUT_FORMATS и аналогичными настройками для своего проекта.

Вы определяете настройку в файле settings.py для своего проекта. Например:

DATE_INPUT_FORMATS = ('%d-%m-%Y', '%Y-%m-%d', '%m/%d/%Y', '%m/%d/%y', '%b %d %Y', 
         '%b %d, %Y', '%d %b %Y', '%d %b, %Y', '%B %d %Y', 
         '%B %d, %Y', '%d %B %Y', '%d %B, %Y') 
+0

может у вас рассказать мне, как я могу его использовать ...... потому что его нет где дано – seena

+0

Вы используете его в файле settings.py (например, DATETIME_FORMAT = 'N j, Y, P'). Вы можете найти разрешенные варианты здесь: http://docs.djangoproject.com/en/dev/ref/templates/builtins/#ttag-now – 3lectrologos

0

Вам лучше беспокоиться о формате на выходе, а не о том, как он хранится. A DateField хранится как собственный столбец базы данных того же типа.

Если вы действительно хотите этого, вы можете установить DATE_FORMAT в вашем settings.py, например, так:

DATE_FORMAT='d-m-Y' 

Это делает дисплей по умолчанию, как это:

Feb 5, 2010 

выглядеть следующим образом:

05-02-2010 

Теперь, конечно, есть и другие места, где это будет такие как админки и виджеты формы по умолчанию, так что это не похоже на то, что это общее решение всех ваших проблем. Просто привыкнуть к использованию datetime.datetime.strftime() как так:

>>> # using one of my own apps as an example where 'created' is a DateTimeField 
>>> r.created 
datetime.datetime(2010, 1, 28, 10, 5, 19, 38963) 
>>> print r.created # default output (this is a Python default) 
2010-01-28 10:05:19.038963 
>>> print datetime.datetime.strftime(r.created, "%m-%d-%Y") # forcing it to m-d-Y format 
01-28-2010 
Смежные вопросы