Неожиданный формат даты и времени в Джанго - PullRequest
0 голосов
/ 04 декабря 2018

У меня есть проект django, в котором одна из моих моделей имеет поле даты с именем start_time.В файле views.py я создал DetailView и пытаюсь получить временную метку, например:

s = self.object.start_time.strftime('%d-%b-%Y')

На моем Raspberry Pi он дает ожидаемый результат.

print(s)
22-Nov-2018

Однако на моемКомпьютер с Ubuntu 18 дает:

print(s)
22-nov.-2018

Как заставить мой компьютер с Ubuntu выдавать тот же (ожидаемый) результат, что и Raspberry Pi?

Они оба работают с Django 2.1.3.

Ответы [ 2 ]

0 голосов
/ 04 декабря 2018

Что окончательно решило мою проблему, так это то, что на компьютере, дающем неожиданные результаты, добавилось

export LC_ALL=en_US.UTF-8

к ~/.bashrc.Затем откройте новый терминал или позвоните source ~/.bashrc.

. Альтернативой является включение

import locale
locale.setlocale(locale.LC_ALL, "en_US.UTF-8")

в views.py приложения.

Вы можете проверить свой текущийНастройки локали, позвонив по номеру locale из терминала.В моем случае LC_ALL было пустым.

0 голосов
/ 04 декабря 2018

Значение %b зависит от локали (см. Соответствующий strftime doc ).

Проверьте локаль на обеих машинах;скорее всего, они, по крайней мере, немного отличаются.Обеспечение того, чтобы оба использовали одну и ту же локаль, было бы идеальным в любом случае, но особенно для дат, вы можете вместо этого придерживаться независимых от локали числовых значений.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...