РЕПЕТИТОР математика физика информатика
Для школьников и студентов. Подтягивание пробелов. ЦЭ, ЦТ, ОГЭ, ЕГЭ.
Идет набор на ЛЕТО. Жмите для подробностей:)
733 of 818 menu

Функция get_current_timezone

Функция get_current_timezone возвращает объект текущей временной зоны, которая активна в данный момент. Эта функция полезна, когда нужно узнать, какая временная зона используется в текущем контексте - будь то глобальная настройка TIME_ZONE или временная зона, установленная для конкретного запроса через activate. Функция не принимает аргументов и возвращает объект типа datetime.tzinfo.

Синтаксис

from django.utils import timezone current_tz = timezone.get_current_timezone()

Пример . Использование

Рассмотрим базовый пример получения текущей временной зоны при стандартных настройках Django:

from django.utils import timezone current_tz = timezone.get_current_timezone() print(f"Current timezone: {current_tz}") now = timezone.now() print(f"Current time in {current_tz}: {now}")

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

"Current timezone: UTC" "Current time in UTC: 2026-01-15 10:30:45.123456+00:00"

Пример . С активацией другой временной зоны

Функция get_current_timezone учитывает временную зону, активированную через activate для текущего запроса:

from django.utils import timezone timezone.activate('Europe/Moscow') current_tz = timezone.get_current_timezone() print(f"Active timezone: {current_tz}") now = timezone.now() print(f"Current time in Moscow: {now}") timezone.deactivate() default_tz = timezone.get_current_timezone() print(f"Default timezone: {default_tz}")

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

"Active timezone: Europe/Moscow" "Current time in Moscow: 2026-01-15 13:30:45.123456+03:00" "Default timezone: UTC"

Использование в представлениях

Покажем, как использовать функцию внутри представления Django для вывода времени с учётом временной зоны пользователя:

from django.shortcuts import render from django.utils import timezone from myapp.models import Article def article_list(request): timezone.activate(request.user.timezone) current_tz = timezone.get_current_timezone() articles = Article.objects.filter( published_at__lte=timezone.now() ) context = { 'articles': articles, 'current_timezone': current_tz, } return render(request, 'articles/list.html', context)

Сравнение с другими функциями

Функция get_current_timezone часто используется вместе с другими функциями модуля timezone для преобразования времени:

from django.utils import timezone from datetime import datetime utc_time = datetime(2026, 1, 15, 10, 30, 0, tzinfo=timezone.utc) timezone.activate('America/New_York') local_time = timezone.localtime(utc_time) current_tz = timezone.get_current_timezone() print(f"Current timezone: {current_tz}") print(f"UTC time: {utc_time}") print(f"Local time: {local_time}")

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

"Current timezone: America/New_York" "UTC time: 2026-01-15 10:30:00+00:00" "Local time: 2026-01-15 05:30:00-05:00"

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

  • функция activate,
    которая устанавливает активную временную зону
  • функция deactivate,
    которая отключает активную временную зону
  • функция now,
    которая возвращает текущее время в активной временной зоне
  • функция localtime,
    которая преобразует время в активную временную зону
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить