diff --git a/containers/backupchecks/src/backend/app/__init__.py b/containers/backupchecks/src/backend/app/__init__.py index 0bca4b2..0893c5a 100644 --- a/containers/backupchecks/src/backend/app/__init__.py +++ b/containers/backupchecks/src/backend/app/__init__.py @@ -68,7 +68,7 @@ def create_app(): """Convert UTC datetime to UI timezone and format as string. Args: - utc_dt: datetime object in UTC (or None) + utc_dt: datetime object in UTC, string representation, or None format: strftime format string (default: '%Y-%m-%d %H:%M:%S') Returns: @@ -79,6 +79,30 @@ def create_app(): from datetime import datetime + # If input is already a string, try to parse it first + if isinstance(utc_dt, str): + utc_dt = utc_dt.strip() + if not utc_dt: + return "" + try: + # Try common datetime formats + for fmt in [ + "%Y-%m-%d %H:%M:%S.%f", # With microseconds + "%Y-%m-%d %H:%M:%S", # Without microseconds + "%Y-%m-%dT%H:%M:%S.%fZ", # ISO format with Z + "%Y-%m-%dT%H:%M:%S", # ISO format without Z + ]: + try: + utc_dt = datetime.strptime(utc_dt, fmt) + break + except ValueError: + continue + else: + # If parsing failed, return original string + return str(utc_dt) + except Exception: + return str(utc_dt) + try: from zoneinfo import ZoneInfo except ImportError: