Функция localdate

Функция localdate преобразует объект datetime в объект date с учётом текущего активного часового пояса. Она особенно полезна, когда нужно получить дату из дата-времени, учитывая настройки временной зоны. Функция принимает один обязательный аргумент - объект datetime, и один необязательный - часовой пояс. Если часовой пояс не указан, используется текущий активный часовой пояс.

Синтаксис

pythonfrom django.utils import timezone

res = timezone.localdate(value, timezone=None)

Пример

Преобразуем объект datetime в дату с учётом текущего часового пояса:

pythonfrom django.utils import timezone
from datetime import datetime

dt = datetime(2025, 1, 15, 20, 30, 0)
res = timezone.localdate(dt)
print(res)

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

python"2025-01-15"

Пример

Преобразуем aware datetime (с часовым поясом) в дату с учётом указанного часового пояса:

pythonfrom django.utils import timezone
import pytz

dt = timezone.datetime(2025, 1, 15, 20, 30, 0, tzinfo=pytz.UTC)
tz = pytz.timezone('Europe/Moscow')
res = timezone.localdate(dt, timezone=tz)
print(res)

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

python"2025-01-16"

Пример

Используем функцию localdate для фильтрации записей по дате в модели:

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

today = timezone.localdate(timezone.now())
todays_articles = Article.objects.filter(created_at__date=today)
for article in todays_articles:
  print(article.title)

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

python"article 1"
"article 2"

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

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