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

Функция timezone.is_naive

Функция is_naive из модуля django.utils.timezone проверяет, является ли переданный объект datetime наивным (naive) - то есть не содержит информации о временной зоне. В качестве аргумента функция принимает объект datetime и возвращает True, если объект наивный, и False в противном случае.

Синтаксис

from django.utils import timezone result = timezone.is_naive(datetime_obj)

Пример . Проверка наивного объекта

Проверим, является ли объект, созданный с помощью datetime.now без указания временной зоны, наивным:

from django.utils import timezone from datetime import datetime # Создаём наивный объект datetime naive_dt = datetime(2026, 9, 7, 14, 30, 0) # Проверяем является ли он наивным res = timezone.is_naive(naive_dt) print(res)

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

"True"

Функция вернула True, так как созданный объект не содержит информации о временной зоне.

Пример . Проверка осознанного объекта

Теперь проверим объект, созданный с указанием временной зоны. Для этого используем функцию make_aware:

from django.utils import timezone from datetime import datetime # Создаём наивный объект naive_dt = datetime(2026, 9, 7, 14, 30, 0) # Делаем его осознанным, привязывая к текущей временной зоне aware_dt = timezone.make_aware(naive_dt) # Проверяем является ли он наивным res = timezone.is_naive(aware_dt) print(res)

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

"False"

Функция вернула False, так как объект теперь содержит информацию о временной зоне и является осознанным (aware).

Пример . Использование с объектами из базы данных

При работе с моделями Django поля DateTimeField могут хранить как наивные, так и осознанные объекты в зависимости от настроек проекта. Проверим объект, полученный из базы данных:

from django.utils import timezone from myapp.models import Article # Получаем статью из базы данных article = Article.objects.get(id=1) # Проверяем является ли поле created_at наивным res = timezone.is_naive(article.created_at) print(res)

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

"False"

В проекте с включенной поддержкой временных зон (USE_TZ = True) поля DateTimeField возвращают осознанные объекты, поэтому функция возвращает False.

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

  • функция is_aware,
    которая проверяет, является ли объект осознанным
  • функция make_aware,
    которая преобразует наивный объект в осознанный
  • функция make_naive,
    которая преобразует осознанный объект в наивный
  • функция now,
    которая возвращает текущее время в осознанном виде
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить