📝 Python

Модуль datetime: работа с датами и временем

0
Author
04e5cc8b-58ac-4bdc-bdee-661bbb
📅
Published
08.05.2026
⏱️
Reading time
1 min
👁️
Views
30
🌱
Level
Beginner

datetime — стандартный модуль Python для работы с датами и временем. Входит в стандартную библиотеку, устанавливать не нужно.

Импорт

from datetime import datetime, date, timedelta

Текущая дата и время

from datetime import datetime

now = datetime.now()
print(now)              # 2025-05-07 14:32:15.123456
print(now.year)         # 2025
print(now.month)        # 5
print(now.day)          # 7
print(now.hour)         # 14

Форматирование — strftime()

strftime() превращает объект datetime в строку по шаблону:

from datetime import datetime

now = datetime.now()
print(now.strftime('%d.%m.%Y'))        # 07.05.2025
print(now.strftime('%d.%m'))           # 07.05
print(now.strftime('%H:%M'))           # 14:32
print(now.strftime('%d.%m.%Y %H:%M')) # 07.05.2025 14:32

Коды формата:

Код Значение Пример
%d День 07
%m Месяц 05
%Y Год (4 цифры) 2025
%H Час (24ч) 14
%M Минуты 32

Парсинг строки — strptime()

Обратная операция: строка → datetime:

from datetime import datetime

dt = datetime.strptime('2025-05-07', '%Y-%m-%d')
print(dt.year)   # 2025
print(dt.month)  # 5

Unix timestamp — fromtimestamp()

Unix timestamp — количество секунд с 1 января 1970 года. Многие API возвращают время именно в этом формате (поле dt в OpenWeatherMap, например).

from datetime import datetime

timestamp = 1735689600  # число из API
dt = datetime.fromtimestamp(timestamp)
print(dt)                          # 2025-01-01 00:00:00
print(dt.strftime('%d.%m.%Y'))    # 01.01.2025
print(dt.strftime('%d.%m'))       # 01.01

fromtimestamp() автоматически учитывает часовой пояс твоей системы.

Сравнение дат

from datetime import date

today = date.today()
some_day = date(2025, 1, 1)

print(today > some_day)   # True
diff = today - some_day
print(diff.days)          # количество дней между датами

timedelta — сдвиг дат

from datetime import date, timedelta

today = date.today()
tomorrow = today + timedelta(days=1)
week_later = today + timedelta(days=7)

print(tomorrow)     # завтра
print(week_later)   # через неделю

Практический пример: фильтрация по дате

from datetime import datetime

items = [
    {'dt': 1735689600, 'temp': -3},
    {'dt': 1735776000, 'temp': -1},
    {'dt': 1735862400, 'temp':  2},
]

seen_dates = set()
for item in items:
    dt = datetime.fromtimestamp(item['dt'])
    date_str = dt.strftime('%d.%m')

    if date_str in seen_dates:
        continue
    seen_dates.add(date_str)

    print(f"{date_str}: {item['temp']}°C")

Your reaction to the article

💬 Comments (0)

🔐 Sign in to leave a comment
🚪 Login
💭

No comments yet

Be the first to share your opinion about this article!

🔗 Similar

Similar articles

Continue learning with these materials

📝

.env файлы и переменные окружения: секреты вне ко…

Представь что ты написал программу с API-ключом прямо в коде и залил её на GitHub....

📅 08.05.2026 👁️ 34
📝

Виртуальные окружения в Python: зачем и как

Когда начинаешь второй Python-проект и ставишь pip install requests — эта библиотека устанавливается глобально, для...

📅 08.05.2026 👁️ 30
📝

argparse: аргументы командной строки в Python

Когда скрипт вырастает из игрушки в инструмент, input() становится неудобным. Профессиональные CLI-программы принимают аргументы при...

📅 08.05.2026 👁️ 29

Did you like the article?

Subscribe to our updates and receive new articles first. Grow with PyLand!