Функция timezone.is_aware

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

Синтаксис

pythonfrom django.utils import timezone

result = timezone.is_aware(datetime_obj)

Пример

Проверим, является ли текущая дата и время осведомленными о часовом поясе:

pythonfrom django.utils import timezone
from datetime import datetime

# Создаем naive datetime (без часового пояса)
naive_dt = datetime(2026, 9, 7, 15, 30)
print(timezone.is_aware(naive_dt))

# Получаем aware datetime (с часовым поясом)
aware_dt = timezone.now()
print(timezone.is_aware(aware_dt))

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

pythonFalse
True

Пример

Используем функцию is_aware для проверки объектов, созданных с помощью make_aware и make_naive:

pythonfrom django.utils import timezone
from datetime import datetime

# Создаем naive datetime
naive_dt = datetime(2026, 12, 31, 23, 59)

# Делаем его aware
aware_dt = timezone.make_aware(naive_dt)
print(timezone.is_aware(aware_dt))

# Делаем обратно naive
naive_dt_again = timezone.make_naive(aware_dt)
print(timezone.is_aware(naive_dt_again))

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

pythonTrue
False

Пример

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

pythonfrom django.utils import timezone
from myapp.models import Article

# Получаем статьи, созданные сегодня
today_articles = Article.objects.filter(
  created_at__date=timezone.now().date()
)

for article in today_articles:
  if timezone.is_aware(article.created_at):
    print(f"Article '{article.title}' has timezone info")
  else:
    print(f"Article '{article.title}' has no timezone info")

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

python"Article 'First article' has timezone info"
"Article 'Second article' has timezone info"

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

  • функция is_naive,
    которая проверяет, является ли объект datetime наивным
  • функция make_aware,
    которая добавляет часовой пояс к naive datetime
  • функция make_naive,
    которая удаляет часовой пояс из aware datetime
  • функция now,
    которая возвращает текущее время с часовым поясом