Перейти к содержанию

412 уроков, 25 библиотек и челлендж «Что выведет код?» — бесплатно, код прямо в браузере

Начать обучение

Datetime в Python: даты и время с нуля — интерактивный курс (20 уроков)

Даты без магии: от первого datetime до часовых поясов и отчётов

Редакция Питоники

20 уроков ≈ 10–14 часов Начальный Бесплатно и без регистрации
Datetime: интерактивные уроки с запуском кода в браузере

Модуль datetime — стандартный способ Python обращаться с датами и временем: сегодняшняя дата, срок подписки, разница между моментами, строка «21.10.2026» из объекта и обратно. Почти каждое приложение упирается во время: логи, отчёты, брони, дедлайны — и везде одни и те же грабли с форматами и часовыми поясами. Этот курс закрывает их по порядку, на настоящем исполняемом коде.

Двадцать уроков ведут от первого объекта до уверенной работы: классы date, time и datetime, now и today, strftime и strptime, коды форматирования %Y-%m-%d, timedelta и арифметика дат, сравнение и сортировка, isoformat, timestamp, часовые пояса через timezone, модуль calendar, русские названия месяцев, даты в Pandas, подсчёт возраста и рабочих дней — и финальный проект: трекер дедлайнов.

Учить ничего не нужно: datetime — часть самого Python, весь код курса исполняется в браузерном интерпретаторе с проверкой вывода.

Чему научитесь

  • Создавать даты и время: date, time, datetime
  • Получать текущий момент через now() и today()
  • Форматировать дату в строку через strftime
  • Разбирать строку в дату через strptime
  • Считать разницы через timedelta
  • Сравнивать и сортировать даты
  • Читать коды форматирования %Y, %m, %d и другие
  • Работать с isoformat и fromisoformat
  • Понимать naive и aware datetime, timezone
  • Собрать трекер дедлайнов на чистом datetime

Для кого: Тем, кто знает базовый Python и хочет перестать бояться дат: логи, отчёты, сроки и графики — везде время, и везде один и тот же набор приёмов.

Программа раздела
20 уроков
  1. Урок 1. datetime в Python: первый момент времениДата как строка не умеет ничего: ни сравниться, ни посчитаться. Создаём первый объект datetime и разбираем его на поля — от года до секунды.
  2. Урок 2. date, time и datetime: три классаДень рождения без часов, будильник без календаря, лог-запись со всем сразу. Три класса модуля datetime — и правило, какой выбрать под задачу.
  3. Урок 3. now и today: текущий моментФиксированные даты хороши для примеров, а для логов и дедлайнов нужен настоящий сейчас. Учимся получать текущий момент — и понимать, почему вывод перестаёт быть предсказуемым.
  4. Урок 4. strftime: дата превращается в строкуОбъект даты хорош для вычислений, а человеку нужна строка «21.10.2026». Один метод strftime и горстка кодов — и дата принимает любой вид.
  5. Урок 5. strptime: строка превращается в датуЛог, форма и таблица присылают даты строками — для вычислений нужен объект. Учим strptime читать строку по шаблону и отличать настоящий формат от почти настоящего.
  6. Урок 6. timedelta: разница между моментами«Срок подписки истекает через 7 дней», «событие было 3 часа назад» — за этим стоит timedelta. Вычитаем моменты, читаем дни и секунды, прибавляем разницу к датам.
  7. Урок 7. Сравнение и сортировка датДаты сравниваются как числа — и потому сортируются, выбираются min и max и становятся ключами словаря. Разбираем операторы и честную сортировку без строковых сюрпризов.
  8. Урок 8. Коды форматирования strftime: полная шпаргалкаstrftime превращает datetime в строку по шаблону из кодов: %Y — год, %m — месяц, %H — часы. Собираем полную шпаргалку с примерами вывода на одной фиксированной дате.
  9. Урок 9. Русские месяцы: названия дат словами%B упрямо выводит October: названия месяцев strftime берёт из локали среды. Делаем словарь RU_MONTHS и печатаем «21 октября 2026» без единой локали.
  10. Урок 10. isoformat и fromisoformat: ISO-датыОдин вызов — и datetime превращается в строку 2026-10-21T14:30:45. ISO-формат сортируется как текст, а fromisoformat читает его обратно без единого кода %.
  11. Урок 11. combine и replace: datetime из частейdate знает день, time знает часы — combine склеивает их в datetime, а replace меняет отдельные поля и возвращает новый объект: datetime неизменяем.
  12. Урок 12. weekday и isoweekday: дни неделиweekday() считает с нуля: 0 — понедельник. isoweekday() — с единицы, по стандарту ISO-8601. Достаём день недели из даты, переводим в «среду» и находим ближайший понедельник.
  13. Урок 13. timestamp: unix-время и эпоха 1970Unix-время — число секунд с полуночи 1 января 1970 года по UTC. Считаем timestamp у aware-дат, переводим число обратно через fromtimestamp — и всегда указываем пояс.
  14. Урок 14. Часовые пояса: timezone и offsetNaive-дата не знает своего пояса, aware — знает: tzinfo хранит смещение от UTC. Один момент в двух поясах — разные цифры на часах и одно и то же время.
  15. Урок 15. calendar: месяц и год в текстМодуль calendar рисует месяц одной строкой, говорит, каким днём недели была дата, проверяет год на високосность и сообщает размер месяца — без единого объекта datetime.
  16. Урок 16. Возраст и разница в дняхПолный возраст из даты рождения с учётом того, был ли день рождения в этом году, дни до события и недели из timedelta — три расчёта, которые нужны в любом проекте с датами.
  17. Урок 17. Рабочие дни: будни без выходныхПеребираем даты циклом с timedelta, отсекаем выходные условием weekday() < 5 и отвечаем на два вопроса планировщика: сколько будней между датами и на какое число выпадает срок через N рабочих дней.
  18. Урок 18. Даты в Pandas: to_datetimeСтолбец дат приезжает из выгрузки строками — pd.to_datetime делает его настоящими датами, после чего работают dt.year, dt.month, фильтры по периоду и сортировка по времени.
  19. Урок 19. Даты в логах: разбор реального форматаЖурнал из строк вида «2026-10-21 09:15:03 ERROR …»: разбираем момент через strptime, сортируем события по времени и вырезаем записи за интервал.
  20. Урок 20. Проект: трекер дедлайновФинальный проект раздела: список задач со сроками, сортировка по дедлайну, дни до срока, просроченные дела и отчёт строками со strftime — всё, что накопили девятнадцать уроков.