Функция timezone.activate
Функция timezone.activate применяется для установки часового пояса,
который будет использоваться по умолчанию в текущем потоке выполнения.
Она принимает один обязательный аргумент - объект часового пояса,
полученный из модуля pytz или zoneinfo (в Django 4.0 и выше).
Этот механизм полезен для обработки дат и времени с учётом локального
времени пользователя или для приложений, работающих в разных часовых поясах.
После вызова activate все операции с датами (например,
timezone.now) будут возвращать время в активированном поясе.
Синтаксис
from django.utils import timezone
import pytz # или from zoneinfo import ZoneInfo
timezone.activate(timezone_object)
Пример
Активируем часовой пояс "Europe/Moscow" и получим текущее время:
from django.utils import timezone
import pytz
moscow_tz = pytz.timezone('Europe/Moscow')
timezone.activate(moscow_tz)
current_time = timezone.now()
print(current_time)
Результат выполнения кода:
"2026-09-07 15:30:45.123456+03:00"
Пример
Переключение между часовыми поясами в рамках одного запроса:
from 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())
Результат выполнения кода:
"2026-09-07 12:30:45.123456+00:00"
"2026-09-07 08:30:45.123456-04:00"
Пример
Использование с моделями: создание записи с временем в активированном часовом поясе:
from 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)
Результат выполнения кода:
"2026-09-07 22:30:45.123456+09:00"
Смотрите также
-
функция
get_current_timezone,
которая возвращает текущий активный часовой пояс -
функция
deactivate,
которая отключает активный часовой пояс и возвращает стандартный UTC -
функция
localtime,
которая преобразует дату в текущий активный часовой пояс -
функция
make_aware,
которая делает наивную дату осознанной в заданном часовом поясе