В settings.py
файле моего проекта Django у меня есть эта строка:
TIME_ZONE = 'UTC'
Но я хочу, чтобы мое приложение работало в часовом поясе UTC + 2, поэтому я изменил его на
TIME_ZONE = 'UTC+2'
Это дает ошибку ValueError: Incorrect timezone setting: UTC+2
. Как правильно это сделать?
Спасибо!
Чтобы получить набор всех допустимых имен часовых поясов (идентификаторов) из базы данных tz , вы можете использовать
pytz
модуль в Python :источник
pytz.common_timezones
.Выберите действительный часовой пояс из базы данных tzinfo . Они имеют тенденцию принимать форму, например,
Africa/Gaborne
иUS/Eastern
Найдите тот, который соответствует ближайшему к вам городу, или тот, в котором есть ваш часовой пояс, затем установите для него значение,
TIME_ZONE
соответствующее.источник
Допустимые значения timeZone основаны на базе данных tz (timezone), используемой Linux и другими системами Unix. Значения представляют собой строки (xsd: string) в форме « Площадь / Местоположение », в которой:
Площадь - это название континента или океана. Площадь в настоящее время включает в себя:
Местоположение - это город, остров или другое региональное название.
Имена зон и выходные сокращения соответствуют соглашениям PIX (интерфейс переносимой операционной системы) UNIX, в которых используются положительные (+) знаки к западу от Гринвича и отрицательные (-) знаки к востоку от Гринвича, что противоположно тому, что обычно ожидается. Например, «Etc / GMT + 4» соответствует 4 часам за UTC (то есть к западу от Гринвича), а не за 4 часа до UTC (Всемирное координированное время) (к востоку от Гринвича).
Вот список всех действительных часовых поясов
Вы можете изменить часовой пояс в вашем settings.py следующим образом
источник
Я нашел этот вопрос, пытаясь изменить часовой пояс в
settings.py
файле моего проекта Django на Великобританию.Используя базу данных tz в решении jfs, я нашел ответ:
источник
Измените TIME_ZONE на ваш местный часовой пояс и сохраните USE_TZ как True в 'setting.py':
TIME_ZONE = 'Азия / Шанхай'
USE_I18N = True
USE_L10N = True
USE_TZ = True
Это запишет и сохранит объект datetime в формате UTC в серверной базе данных.
Затем используйте шаблон тега, чтобы преобразовать время UTC в шаблон веб-интерфейса следующим образом:
или используйте шаблоны фильтров кратко:
Вы можете проверить более подробную информацию в официальном документе: часовой пояс по умолчанию и текущий часовой пояс
Когда поддержка часовых поясов включена, Django сохраняет информацию о дате и времени в формате UTC в базе данных, внутренне использует объекты даты и времени с учетом часового пояса и переводит их в часовой пояс конечного пользователя в шаблонах и формах.
источник
Универсальное решение, основанное на поддержке имени TZ от Django :
+/- намеренно переключается.
источник
загрузить последний файл pytz (pytz-2019.3.tar.gz) из:
скопируйте и распакуйте его в
site_packages
каталог вашего проектав cmd перейдите в извлеченную папку и запустите:
TIME_ZONE = 'Etc/GMT+2'
или название страныисточник