timezone.deactivate
Функция timezone.deactivate применяется для деактивации временной зоны, которая была установлена с помощью timezone.activate в текущем потоке. После вызова этой функции все операции с датами и временем будут использовать временную зону, установленную в настройках проекта (обычно это значение параметра TIME_ZONE). Функция не принимает никаких аргументов и работает только в контексте текущего потока выполнения.
Синтаксис
from django.utils import timezone
timezone.deactivate()
Пример
Давайте активируем временную зону "Europe/Moscow", а затем деактивируем её, чтобы вернуться к зоне по умолчанию:
from 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)
Результат выполнения кода:
"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 внутри функции для безопасной работы с временными зонами:
from 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}")
Результат выполнения кода:
"Local time: 2026-09-07 09:30:45.123456-04:00"
Смотрите также
-
функция
activate,
которая устанавливает активную временную зону для текущего потока -
функция
get_current_timezone,
которая возвращает текущую активную временную зону -
функция
localtime,
которая преобразует дату в текущую активную временную зону -
функция
is_aware,
которая проверяет, содержит ли дата информацию о временной зоне