Джанго - возвращение немецкой даты с strftime - PullRequest
0 голосов
/ 02 мая 2018

У меня есть этот код:

 date = program.last_registration_date.strftime('%d %B %Y, %H:%M')

program - моя модель, а last_registration_date - нормальное значение от DateTimeField

Теперь моя проблема в том, что дата возвращает английскую дату, которую я не хочу. В моем default.py я правильно установил TIME_ZONE («Европа / Берлин»), для моих LANGUAGE_CODE ('de') и ofc USE_L1ON установлено значение True. Но это еще не немец.

Я пытался импортировать локаль и использовать setlocale после моего импорта, но это также не сработает (просто показывает ошибку, что локаль является неподдерживаемым параметром).

Итак, кто-нибудь может мне помочь, как превратить эту дату в немецкую?

Ответы [ 2 ]

0 голосов
/ 04 мая 2018

Хорошо, я понял это и просто удалил strftime для использования:

 date = date_format(program.last_registration_date)

Который работал без проблем для меня.

0 голосов
/ 02 мая 2018

Убедитесь, что у вас есть правильная конфигурация settings и formats в проекте Django. Структура примера проекта:

.
|-- README.md
|-- demo.db
|-- demo_time_set
|   |-- __init__.py
|   |-- demo.db
|   |-- formats
|   |   |-- __init__.py
|   |   `-- en
|   |       |-- __init__.py
|   |       `-- formats.py
|   |-- settings.py
|   |-- urls.py
|   `-- wsgi.py
|-- manage.py
|-- requirments.txt
`-- some_app
    |-- __init__.py
    |-- admin.py
    `-- models.py

Вы можете определить его для нескольких языков, просто указав каталог с соответствующим именем и format.py внутри. Содержание примера formats.py, в котором происходит все ВОЛШЕБСТВО, может выглядеть следующим образом:

# HERE FORMATING AS shown in:
# LIST: https://docs.djangoproject.com/en/dev/ref/templates/builtins/#date
DATE_FORMAT = 'd-m-Y'
TIME_FORMAT = 'H:i'
DATETIME_FORMAT = 'd-m-Y H:i'
YEAR_MONTH_FORMAT = 'F Y'
MONTH_DAY_FORMAT = 'F j'
SHORT_DATE_FORMAT = 'm/d/Y'
SHORT_DATETIME_FORMAT = 'm/d/Y P'
FIRST_DAY_OF_WEEK = 1

# BUT here use the Python strftime format syntax,
# LIST: http://docs.python.org/library/datetime.html#strftime-strptime-behavior

DATE_INPUT_FORMATS = (
    '%d-%m-%Y',     # '21-03-2014'
)
TIME_INPUT_FORMATS = (
    '%H:%M:%S',     # '17:59:59'
    '%H:%M',        # '17:59'
)
DATETIME_INPUT_FORMATS = (
    '%d-%m-%Y %H:%M',     # '21-03-2014 17:59'
)

DECIMAL_SEPARATOR = u'.'
THOUSAND_SEPARATOR = u','
NUMBER_GROUPING = 3

Обратите внимание на две ссылки в комментариях, которые приведут вас к спискам правильных конфигураций, которые РАЗЛИЧНЫ для РАЗНЫХ деталей!

В вашем settings.py просто добавьте:

FORMAT_MODULE_PATH = 'demo_time_set.formats'

[GITHUB] Вот полный рабочий пример: https://github.com/andilab/demo_time_set

...