Функция timezone.activate

Функция timezone.activate применяется для установки часового пояса, который будет использоваться по умолчанию в текущем потоке выполнения. Она принимает один обязательный аргумент - объект часового пояса, полученный из модуля pytz или zoneinfo (в Django 4.0 и выше). Этот механизм полезен для обработки дат и времени с учётом локального времени пользователя или для приложений, работающих в разных часовых поясах. После вызова activate все операции с датами (например, timezone.now) будут возвращать время в активированном поясе.

Синтаксис

pythonfrom django.utils import timezone
import pytz  # или from zoneinfo import ZoneInfo

timezone.activate(timezone_object)

Пример

Активируем часовой пояс "Europe/Moscow" и получим текущее время:

pythonfrom django.utils import timezone
import pytz

moscow_tz = pytz.timezone('Europe/Moscow')
timezone.activate(moscow_tz)

current_time = timezone.now()
print(current_time)

Результат выполнения кода:

python"2026-09-07 15:30:45.123456+03:00"

Пример

Переключение между часовыми поясами в рамках одного запроса:

pythonfrom django.utils import timezone
import pytz

# Активируем UTC
utc_tz = pytz.UTC
timezone.activate(utc_tz)
print(timezone.now())

# Активируем America/New_York
ny_tz = pytz.timezone('America/New_York')
timezone.activate(ny_tz)
print(timezone.now())

Результат выполнения кода:

python"2026-09-07 12:30:45.123456+00:00"
"2026-09-07 08:30:45.123456-04:00"

Пример

Использование с моделями: создание записи с временем в активированном часовом поясе:

pythonfrom django.utils import timezone
import pytz
from myapp.models import Article

# Активируем часовой пояс Азии/Токио
tokyo_tz = pytz.timezone('Asia/Tokyo')
timezone.activate(tokyo_tz)

article = Article(
  title='Tokyo Time Article',
  published_at=timezone.now()
)
article.save()

print(article.published_at)

Результат выполнения кода:

python"2026-09-07 22:30:45.123456+09:00"

Смотрите также

  • функция get_current_timezone,
    которая возвращает текущий активный часовой пояс
  • функция deactivate,
    которая отключает активный часовой пояс и возвращает стандартный UTC
  • функция localtime,
    которая преобразует дату в текущий активный часовой пояс
  • функция make_aware,
    которая делает наивную дату осознанной в заданном часовом поясе