Часовой пояс django принят за UTC, хотя я установил его в «Азия / Калькутта» - PullRequest
0 голосов
/ 29 апреля 2018

вот мои настройки часового пояса в settings.py

TIME_ZONE =  'Asia/Kolkata'

# See: https://docs.djangoproject.com/en/dev/ref/settings/#language-code
LANGUAGE_CODE = 'en-us'

# See: https://docs.djangoproject.com/en/dev/ref/settings/#site-id
SITE_ID = 1

# See: https://docs.djangoproject.com/en/dev/ref/settings/#use-i18n
USE_I18N = True

# See: https://docs.djangoproject.com/en/dev/ref/settings/#use-l10n
USE_L10N = True

# See: https://docs.djangoproject.com/en/dev/ref/settings/#use-tz
USE_TZ = False

теперь, когда я использую timezone.now (), я всегда получаю время UTC. Я что-то пропустил

1 Ответ

0 голосов
/ 29 апреля 2018

Прежде всего, вы должны установить USE_TZ = True для использования функциональности.

Django преобразует время в указанный часовой пояс (Asia/Kolkata) только в templates. Итак, если вы хотите использовать ваше местное время (Asia/Kolkata) где-то в коде (views/models), вы должны использовать метод localtime(). Следуйте коду для достижения этого:

settings.py

TIME_ZONE = 'Asia/Kolkata'
USE_TZ = True

и

from django.utils import timezone

my_local_time = timezone.localtime(timezone.now())

Пример в оболочке django

In [1]: from django.utils import timezone

In [2]: timezone.now()
Out[2]: datetime.datetime(2018, 4, 29, 14, 5, 30, 112218, tzinfo=<UTC>)

In [3]: timezone.localtime(timezone.now())
Out[3]: datetime.datetime(2018, 4, 29, 19, 35, 46, 649587, tzinfo=<DstTzInfo 'Asia/Kolkata' IST+5:30:00 STD>)

Ссылки:

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