Почему я продолжаю получать часовой пояс 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() для получения времени в текущем часовом поясе.

Вернуться на верх