timezone.deactivate

Функция timezone.deactivate применяется для деактивации временной зоны, которая была установлена с помощью timezone.activate в текущем потоке. После вызова этой функции все операции с датами и временем будут использовать временную зону, установленную в настройках проекта (обычно это значение параметра TIME_ZONE). Функция не принимает никаких аргументов и работает только в контексте текущего потока выполнения.

Синтаксис

pythonfrom django.utils import timezone

timezone.deactivate()

Пример

Давайте активируем временную зону "Europe/Moscow", а затем деактивируем её, чтобы вернуться к зоне по умолчанию:

pythonfrom django.utils import timezone
from datetime import datetime

# Активируем московское время
timezone.activate('Europe/Moscow')

# Получаем текущее время в активированной зоне
current_time = timezone.now()
print("Current time with Moscow timezone:", current_time)

# Деактивируем временную зону
timezone.deactivate()

# Теперь текущее время будет в зоне по умолчанию
default_time = timezone.now()
print("Current time with default timezone:", default_time)

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

python"Current time with Moscow timezone: 2026-09-07 15:30:45.123456+03:00"
"Current time with default timezone: 2026-09-07 12:30:45.123456+00:00"

Пример

Давайте используем timezone.deactivate внутри функции для безопасной работы с временными зонами:

pythonfrom django.utils import timezone
from django.http import HttpResponse
from datetime import datetime

def show_local_time(request):
  # Активируем зону по часовому поясу пользователя
  user_timezone = request.session.get('timezone', 'America/New_York')
  timezone.activate(user_timezone)

  # Получаем текущее время в зоне пользователя
  local_time = timezone.now()

  # Деактивируем зону, чтобы не влиять на другие запросы
  timezone.deactivate()

  return HttpResponse(f"Local time: {local_time}")

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

python"Local time: 2026-09-07 09:30:45.123456-04:00"

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

  • функция activate,
    которая устанавливает активную временную зону для текущего потока
  • функция get_current_timezone,
    которая возвращает текущую активную временную зону
  • функция localtime,
    которая преобразует дату в текущую активную временную зону
  • функция is_aware,
    которая проверяет, содержит ли дата информацию о временной зоне