Справочник Python

Полное руководство по языку на русском

Дата и время

datetime — основные типы

from datetime import datetime, date, time, timedelta  # импорт модуля

# Текущие дата/время
now = datetime.now()          # 2026-06-17 14:30:00.123456
today = date.today()          # 2026-06-17
current_time = datetime.now().time()  # 14:30:00.123456

# Создание вручную
dt = datetime(2026, 6, 17, 14, 30, 0)  # присваивание
d = date(2026, 6, 17)  # присваивание
t = time(14, 30, 0)  # присваивание

Форматирование и парсинг

# datetime → строка (strftime)
now = datetime.now()  # присваивание
now.strftime("%Y-%m-%d")              # 2026-06-17
now.strftime("%d.%m.%Y %H:%M")        # 17.06.2026 14:30
now.strftime("%A, %d %B %Y")          # Wednesday, 17 June 2026
now.strftime("%Y-%m-%dT%H:%M:%S")     # 2026-06-17T14:30:00 (ISO)

# Строка → datetime (strptime)
dt = datetime.strptime("2026-06-17", "%Y-%m-%d")  # парсинг строки в дату
dt = datetime.fromisoformat("2026-06-17T14:30:00")  # 3.7+

Коды форматирования

КодЗначениеПример
%YГод (4 цифры)2026
%mМесяц (01–12)06
%dДень (01–31)17
%HЧасы (00–23)14
%MМинуты (00–59)30
%SСекунды (00–59)00
%AДень недели (полный)Wednesday
%BМесяц (полный)June

timedelta — разница во времени

from datetime import timedelta  # импорт модуля времени

delta = timedelta(days=7, hours=3)  # присваивание
print(delta)  # 7 days, 3:00:00

# Арифметика
now = datetime.now()  # присваивание
next_week = now + timedelta(weeks=1)  # присваивание
yesterday = now - timedelta(days=1)  # присваивание
deadline = now + timedelta(hours=24)  # присваивание

# Между датами
start = datetime(2026, 1, 1)  # присваивание
end = datetime(2026, 12, 31)  # присваивание
diff = end - start  # timedelta(days=363)

diff.days            # 363
diff.total_seconds() # 31363200.0

timezone — часовые пояса

from datetime import timezone, timedelta  # импорт модуля времени

# UTC
utc_now = datetime.now(timezone.utc)  # присваивание

# Смещение
msk = timezone(timedelta(hours=3))  # присваивание
moscow_now = datetime.now(msk)  # присваивание

# pip install pytz — для полной поддержки поясов
import pytz  # импорт модуля
tz = pytz.timezone("Europe/Moscow")  # присваивание
moscow = datetime.now(tz)  # присваивание

time — низкоуровневое время

import time  # импорт модуля времени

# Таймер
start = time.time()  # метка времени в секундах
# ... код ...
elapsed = time.time() - start  # метка времени в секундах
print(f"{elapsed:.3f}s")  # вывод в консоль

# Ожидание
time.sleep(2)   # 2 секунды

# Структурированное время
time.localtime()  # time.struct_time
time.strftime("%Y-%m-%d", time.localtime())  # форматирование даты в строку