Функция timezone.is_aware
Функция timezone.is_aware применяется к объектам типа datetime для определения, является ли переданный объект осведомленным о часовом поясе (aware). В качестве аргумента принимает один параметр - проверяемый объект даты и времени. Функция возвращает True, если объект имеет информацию о часовом поясе, и False в противном случае.
Синтаксис
from django.utils import timezone
result = timezone.is_aware(datetime_obj)
Пример
Проверим, является ли текущая дата и время осведомленными о часовом поясе:
from 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))
Результат выполнения кода:
False
True
Пример
Используем функцию is_aware для проверки объектов, созданных с помощью make_aware и make_naive:
from 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))
Результат выполнения кода:
True
False
Пример
Применяем is_aware для проверки объектов, полученных из базы данных с использованием модели с полем DateTimeField:
from 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")
Результат выполнения кода:
"Article 'First article' has timezone info"
"Article 'Second article' has timezone info"
Смотрите также
-
функция
is_naive,
которая проверяет, является ли объект datetime наивным -
функция
make_aware,
которая добавляет часовой пояс к naive datetime -
функция
make_naive,
которая удаляет часовой пояс из aware datetime -
функция
now,
которая возвращает текущее время с часовым поясом