from datetime import datetime, timezone from zoneinfo import ZoneInfo from flask import current_app def get_timezone(): tz_name = current_app.config.get("TIMEZONE", "UTC") return ZoneInfo(tz_name) def utc_to_local(dt): """Конвертирует наивное UTC-время в локальное наивное время.""" if dt is None: return None # Считаем, что хранимое время — UTC utc_dt = dt.replace(tzinfo=timezone.utc) if dt.tzinfo is None else dt.astimezone(timezone.utc) local_dt = utc_dt.astimezone(get_timezone()) return local_dt.replace(tzinfo=None) def local_to_utc(dt): """Конвертирует наивное локальное время в UTC-наивное для хранения.""" if dt is None: return None local_dt = dt.replace(tzinfo=get_timezone()) utc_dt = local_dt.astimezone(timezone.utc) return utc_dt.replace(tzinfo=None)