📝 Django

Форматы дат в Django

P
Автор
Pyland
📅
Опубликовано
30.06.2026
⏱️
Время чтения
1 мин
👁️
Просмотров
85
🌿
Уровень
Средний
🐦 💼 ✈️

Охватываемые темы: Поля дат в модели, Работа с датами в Python, Форматирование в шаблоне, Форматирование в Python.

Поля дат в модели

from django.db import models

class Task(models.Model):
    created_at = models.DateTimeField(auto_now_add=True)  # при создании
    updated_at = models.DateTimeField(auto_now=True)       # при каждом save
    due_date = models.DateField(null=True, blank=True)

Работа с датами в Python

from django.utils import timezone
from datetime import date, timedelta

now = timezone.now()            # aware datetime (с таймзоной)
today = timezone.localdate()    # локальная дата

# Арифметика
tomorrow = today + timedelta(days=1)
week_later = today + timedelta(weeks=1)

# Сравнение
overdue = Task.objects.filter(due_date__lt=today, status='todo')

Форматирование в шаблоне

{{ task.created_at }}                    <!-- 2024-01-15 10:30:00+00:00 -->
{{ task.created_at|date:"d.m.Y" }}       <!-- 15.01.2024 -->
{{ task.created_at|date:"d M Y, H:i" }}  <!-- 15 Jan 2024, 10:30 -->
{{ task.created_at|timesince }}          <!-- 3 дня назад -->
{{ task.due_date|timeuntil }}            <!-- через 2 дня -->

Форматирование в Python

from django.utils.formats import date_format

formatted = date_format(task.created_at, 'd.m.Y H:i')

# Стандартный Python strftime
task.created_at.strftime('%d.%m.%Y %H:%M')

Настройки форматирования

# settings.py
LANGUAGE_CODE = 'ru-ru'
USE_I18N = True
USE_L10N = True
USE_TZ = True

TIME_ZONE = 'Europe/Moscow'

# Форматы для ru локали
DATE_FORMAT = 'd.m.Y'
DATETIME_FORMAT = 'd.m.Y H:i'

Фильтрация по датам

from django.utils import timezone

# Задачи на сегодня
today = timezone.localdate()
Task.objects.filter(due_date=today)

# Задачи этой недели
week_start = today - timedelta(days=today.weekday())
Task.objects.filter(due_date__range=[week_start, week_start + timedelta(days=6)])

# По году/месяцу
Task.objects.filter(created_at__year=2024, created_at__month=1)

Ваша реакция на статью

💬 Комментарии (0)

🔐 Войдите в систему, чтобы оставить комментарий
🚪 Войти
💭

Комментариев пока нет

Станьте первым, кто поделится мнением об этой статье!

🔗 Похожие

Похожие статьи

Продолжите изучение с этими материалами

📝

pytest-django: тестирование Django

Охватываемые темы: Установка, @pytest.mark.djangodb, Фикстуры, Тестирование views.

📅 30.06.2026 👁️ 138
📝

Что такое ORM

ORM (Object-Relational Mapping) — технология, позволяющая работать с базой данных через объекты Python вместо SQL.

📅 30.06.2026 👁️ 131
📝

SQLite в Python: персистентная память для агентов

SQLite — встроенная в Python реляционная база данных. Хранит данные в одном файле, не требует...

📅 30.06.2026 👁️ 84

Понравилась статья?

Подпишитесь на наши обновления и получайте новые статьи первыми. Развивайтесь вместе с PyLand!