Работа с датами и временем (datetime)
Освоение работы с датами в Python: создание, форматирование и расчёты с помощью модуля datetime.
Работа с датами и временем (datetime)
В этом занятии мы изучим модуль datetime
для работы с датами и временем в Python. Этот модуль позволяет создавать, форматировать и вычислять разницу между датами.
Основные классы
Модуль содержит четыре основных класса:
from datetime import date, time, datetime, timedelta
date
— работа с датами (год, месяц, день)time
— работа с временем (часы, минуты, секунды)datetime
— дата и время вместеtimedelta
— разница между датами
Создание даты и времени
Примеры создания объектов даты и времени:
# Создание даты
d = date(2025, 4, 20)
print(d)
# Выведет: 2025-04-20
# Создание времени
t = time(14, 30, 15)
print(t)
# Выведет: 14:30:15
# Полная дата и время
dt = datetime(2025, 4, 20, 14, 30, 15)
print(dt)
# Выведет: 2025-04-20 14:30:15
Текущая дата и время
Получение текущих даты и времени:
# Текущая дата и время
now = datetime.now()
print("Сейчас:", now)
# Только дата
today = date.today()
print("Сегодня:", today)
Форматирование дат
Преобразование между строками и датами:
# Дата в строку
formatted = now.strftime("%d.%m.%Y %H:%M")
print(formatted)
# Пример: 20.04.2025 14:30
# Строка в дату
date_string = "20.04.2025 14:30"
parsed_date = datetime.strptime(date_string, "%d.%m.%Y %H:%M")
print(parsed_date)
# 2025-04-20 14:30:00
Разница между датами
Работа с временными интервалами:
# Создание интервала
delta = timedelta(days=10, hours=3)
print(delta)
# 10 days, 3:00:00
# Вычисление будущей даты
future_date = now + delta
print("Через 10 дней и 3 часа:", future_date)
# Разница между датами
diff = future_date - now
print("Разница в днях:", diff.days)
print("Разница в секундах:", diff.seconds)
Часовые пояса
Базовая работа с часовыми поясами:
from datetime import timezone
# UTC+3 (Московское время)
moscow_tz = timezone(timedelta(hours=3))
local_time = now.astimezone(moscow_tz)
print("Москва:", local_time)
Заключение
Теперь вы умеете работать с датами и временем в Python. Эти знания пригодятся для создания календарей, таймеров и анализа временных данных.
Практика
🎯 Миссия 16: "День рождения Python"
🔍 Контекст: Нашему любимому языку в 2026 году исполнится 35 лет! Давайте посчитаем вместе.
⚙️ Техзадание для локального Python:
1. Используйте ваш компьютер (этот тренажёр не поддерживает модуль datetime)
2. Рассчитайте:
- Сколько дней прошло с даты рождения Python (20.02.1991)
- Сколько полных лет исполнилось
3. Форматируйте вывод как в примере:
from datetime import datetime, date python_birth = date(1991, 2, 20) today = date.today() # Ваш код здесь Вывод: Дней с рождения Python: 12893 Полных лет: 35
💡 Как тестировать локально:
1. Создайте файл python_age.py
2. Скопируйте код туда и допишите решение
3. Запустите в терминале: python python_age.py
4. Проверьте вывод
Попробуйте на практике:
Результат:
Вопросы для закрепления
Вопросы для проверки усвоенного материала доступны зарегистрированным пользователям.