const FALLBACK_TZ = "Asia/Tehran"; const TZ_ALIASES: Record = { "Asia/Esfahan": FALLBACK_TZ, "Asia/Isfahan": FALLBACK_TZ, "Asia/Mashhad": FALLBACK_TZ, "Asia/Shiraz": FALLBACK_TZ, "Asia/Tabriz": FALLBACK_TZ, Iran: FALLBACK_TZ, }; export function resolveTimezone(input?: string | null): string { const raw = (input || FALLBACK_TZ).trim() || FALLBACK_TZ; const candidate = TZ_ALIASES[raw] || raw; try { Intl.DateTimeFormat("en-US", { timeZone: candidate }); return candidate; } catch { return FALLBACK_TZ; } } export function formatClock(date: Date, timezone?: string | null, locale = "fa-IR") { const tz = resolveTimezone(timezone); return new Intl.DateTimeFormat(locale, { timeZone: tz, hour: "2-digit", minute: "2-digit", second: "2-digit", hour12: false, }).format(date); }