📝 Python

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

P
Автор
PyLand Team
📅
Опубликовано
08.05.2026
⏱️
Время чтения
1 мин
👁️
Просмотров
380
🌿
Уровень
Средний

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")

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

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

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

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

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

🔗 Похожие

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

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

📝

if __name__ == "__main__": точка входа Python

Конструкция if name == "main" определяет точку входа Python-программы: она помогает отличить прямой запуск файла...

📅 14.08.2026 👁️ 44
📝

strip() и lower(): подготавливаем пользовательски…

Пользователь может ввести правильное слово с лишними пробелами или буквами другого регистра. Для Python строки...

📅 11.08.2026 👁️ 50
📝

ord(), chr() и циклический сдвиг букв в Python 🔐

Строка состоит из символов, но компьютер хранит каждый символ как числовой код. Python позволяет переходить...

📅 09.08.2026 👁️ 89
🎓 Продолжить обучение

В каких курсах используется этот материал

Перейдите к курсу, чтобы закрепить материал на практике.

API на практике: взаимодействие с любыми сервисами Открыть программу курса