Files
kandrusyak_bot/assistant_bot/time_utils.py
kandrusyak 6667e0d253 init
2026-07-25 15:07:53 +03:00

24 lines
662 B
Python

from datetime import datetime, timezone
from zoneinfo import ZoneInfo
def utc_now() -> datetime:
return datetime.now(timezone.utc)
def to_utc_iso(value: datetime) -> str:
return value.astimezone(timezone.utc).isoformat(timespec="seconds")
def parse_utc_iso(value: str) -> datetime:
parsed = datetime.fromisoformat(value)
if parsed.tzinfo is None:
return parsed.replace(tzinfo=timezone.utc)
return parsed.astimezone(timezone.utc)
def format_local_dt(value: str | datetime, tz: ZoneInfo) -> str:
parsed = parse_utc_iso(value) if isinstance(value, str) else value
return parsed.astimezone(tz).strftime("%Y-%m-%d %H:%M")