""" AETERNA AI — Timezone & Date Helpers (Asia/Jakarta WIB) """ from datetime import datetime, timedelta, timezone from typing import Optional import pandas as pd JAKARTA_TZ = timezone(timedelta(hours=7)) def get_jakarta_now() -> datetime: """Return current timestamp locked to Waktu Indonesia Barat (UTC+7).""" return datetime.now(JAKARTA_TZ) def parse_flexible_date(date_input: Optional[str], default_year: int = 2026) -> Optional[pd.Timestamp]: """Parse various date formats into a standard pandas Timestamp.""" if not date_input: return None date_input = str(date_input).strip() for fmt in ["%Y-%m-%d", "%d-%m-%Y", "%m-%d", "%d %B %Y", "%d %b %Y", "%B %d, %Y"]: try: parsed = datetime.strptime(date_input, fmt) if fmt == "%m-%d": parsed = parsed.replace(year=default_year) return pd.Timestamp(parsed) except ValueError: continue raise ValueError(f"Unrecognized date format: '{date_input}'. Supported format is YYYY-MM-DD.")