Работа с датами и временем (datetime)


Работа с датами и временем (datetime)

Освоение работы с датами в Python: создание, форматирование и расчёты с помощью модуля datetime.

💡Внимание! В целях безопасности импорт библиотеки datetime во встроенном интерпретаторе заблокирован. Воспользуйтесь локальным интерпретатором Python

Работа с датами и временем (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. Проверьте вывод


Попробуйте на практике:

Результат:


                

Вопросы для закрепления

Вопросы для проверки усвоенного материала доступны зарегистрированным пользователям.