Merge pull request #1590 from netalertx/next_release
Some checks are pending
✅ Code checks / check-url-paths (push) Waiting to run
✅ Code checks / lint (push) Waiting to run
✅ Code checks / docker-tests (push) Waiting to run
🐳 👩‍💻 docker dev / docker_dev (push) Waiting to run
📘 Deploy MkDocs / deploy (push) Waiting to run

Fix timezone handling in format_date_iso: ensure fallback to UTC for …
This commit is contained in:
Jokob @NetAlertX
2026-04-06 08:57:45 +10:00
committed by GitHub

View File

@@ -6,7 +6,7 @@ import datetime
import re
import pytz
from typing import Union, Optional
from zoneinfo import ZoneInfo
from zoneinfo import ZoneInfo, ZoneInfoNotFoundError
import email.utils
import conf
# from const import *
@@ -209,10 +209,13 @@ def format_date_iso(date_val: str) -> Optional[str]:
# 2. If it has no timezone, assume it's UTC (our DB storage format)
# then CONVERT to user's configured timezone
if dt.tzinfo is None:
# Mark as UTC first
# Mark as UTC first — critical: localize() would label without converting
dt = dt.replace(tzinfo=datetime.UTC)
# Convert to user's timezone
target_tz = conf.tz if isinstance(conf.tz, datetime.tzinfo) else ZoneInfo(conf.tz)
# Resolve target timezone; fall back to UTC if conf.tz is missing/invalid
try:
target_tz = conf.tz if isinstance(conf.tz, datetime.tzinfo) else ZoneInfo(conf.tz)
except (ZoneInfoNotFoundError, ValueError, TypeError):
target_tz = datetime.UTC
dt = dt.astimezone(target_tz)
# 3. Return the string. .isoformat() will now include the +11:00 or +10:00