Django: получить часовой пояс UTC

#python #django

#python #django

Вопрос:

Это кажется чрезвычайно простым, но я не могу найти простого объяснения: как я могу передать часовой пояс UTC здесь? Я хочу передать GMT / UTC конкретно.

 from django.utils import timezone
timezone.make_aware(datetime.fromtimestamp(sometimestamp), timezone=???)
  

Ответ №1:

Начиная с Python 3.4, объект UTC находится в стандартной библиотеке как datetime.timezone.utc ; вам не нужны какие-либо функции, специфичные для django:

 import datetime
sometimestamp = 1598992554
datetime.datetime.fromtimestamp(sometimestamp, tz=datetime.timezone.utc)
  

До Python 3.4 большинство проектов использовали pytz с its pytz.utc .

Ответ №2:

Согласно:https://docs.djangoproject.com/en/3.1/topics/i18n/timezones/#selecting-the-current-time-zone

Выбор часового пояса используется pytz модулем и его также можно увидеть в официальных документах:

https://docs.djangoproject.com/en/3.1/ref/utils/#django.utils.timezone.make_aware

Следовательно, получить часовой пояс по:

 import pytz

tz = pytz.timezone('<string>')
  

Список часовых поясов можно подтвердить с помощью:https://en.wikipedia.org/wiki/List_of_tz_database_time_zones

А затем использовать его в make_aware методе