Почему я продолжаю получать часовой пояс UTC, даже когда настройки Django настроены по-другому
Я не уверен, почему ответ по времени даты всегда отстает на один час (UTC)
Конфигурация настроек Django
LANGUAGE_CODE = "en-us"
TIME_ZONE = "Africa/Lagos"
USE_I18N = True
USE_L10N = True
USE_TZ = True
DATE_FORMAT = "F j, Y"
SITE_ID = 1
from django.utils import timezone
timezone.now()
response:
datetime.datetime(2022, 7, 23, 13, 58, 6, 739601, tzinfo=<UTC>)
Вы видите, что информация о часовом поясе - UTC
Попробуйте: 1.скачать последнюю версию файла pytz (pytz-2019.3.tar.gz) с сайта https://pypi.org/simple/pytz/
2.скопируйте и извлеките его в каталог site_packages в вашем проекте
3.в cmd перейдите в папку exracted и выполните команду "python setup.py install"
4.TIME_ZONE = 'Etc/GMT+3' или название страны
Это нужно сделать следующим образом:
LANGUAGE_CODE = "en-us"
TIME_ZONE = "Africa/Lagos"
USE_I18N = True
USE_L10N = False
USE_TZ = False
now()
Возвращает значение datetime, представляющее текущий момент времени. То, что именно возвращается, зависит от значения параметра
USE_TZ
:Если
USE_TZ
равно False, это будет наивноеdatetime
(т. е. время без связанного часового пояса), которое представляет текущее время в локальном часовом поясе системы.Если
USE_TZ
имеет значение True, то это будет значениеdatetime
, представляющее текущее время в UTC. Обратите внимание, чтоnow()
всегда будет возвращать время в UTC, независимо от значенияTIME_ZONE
; вы можете использоватьlocaltime()
для получения времени в текущем часовом поясе.