Даты и время
Моделируйте реальные моменты в коде: создавайте их, выполняйте арифметику и превращайте в текст и обратно
datetime в Python даёт настоящие объекты, понимающие всё это, поэтому вам больше не нужно вручную жонглировать голыми числами и строками.
- создавать объекты
date,timeиdatetimeи читать их поля, - измерять и сдвигать время с помощью
timedelta, - превращать
datetimeв текст черезstrftimeи читать текст обратно черезstrptime, - объяснять разницу между наивным (naive) и осведомлённым (aware) datetime и присоединять часовой пояс.
1. Почему время сложнее, чем кажется
Представьте конкретный момент — например, миг отправления поезда. Чтобы точно его зафиксировать, нужна календарная часть (какой день) и часовая часть (какое время суток), а иногда и третье: где на Земле идут эти часы. Двое могут сказать "три часа" и иметь в виду моменты, отличающиеся на несколько часов.
Аналогия: обычное число вроде 1500 — как фотография без подписи: это минуты, год или цена? Объект datetime — та же фотография с подписью: он знает, что 1500 — это год, что 30 — допустимая минута, но не допустимый месяц, и что прибавление одного дня к 31 января даёт 1 февраля, а не 32 января. Именно это встроенное знание и есть причина предпочитать объекты вычислениям над голыми числами.
Если вы храните дату строкой вроде "2026-07-15", а затем спрашиваете "какая дата через 45 дней?", вы в тупике — строки не умеют арифметику. Сначала преобразуйте в datetime, выполните вычисления, а затем при необходимости показа снова превратите в строку.