Python

Работа с датами и часовыми поясами

Algonexys · 07.08.2026 · 👁 0

Aware-даты через zoneinfo (стандартная библиотека с Python 3.9) вместо наивных datetime.

Код

from datetime import datetime, timedelta, timezone
from zoneinfo import ZoneInfo

MOSCOW = ZoneInfo("Europe/Moscow")

now_utc = datetime.now(timezone.utc)
now_msk = now_utc.astimezone(MOSCOW)

print(now_msk.strftime("%d.%m.%Y %H:%M %Z"))

# Разбор строки ISO 8601 (в т.ч. с суффиксом Z)
parsed = datetime.fromisoformat("2026-01-15T10:30:00+00:00")

# Арифметика
week_ago = now_utc - timedelta(days=7)
print(f"Прошло секунд: {(now_utc - week_ago).total_seconds():.0f}")

# Unix timestamp в обе стороны
ts = int(now_utc.timestamp())
print(datetime.fromtimestamp(ts, tz=MOSCOW))