Model/backend/condition/utils/date_utils.py
2026-01-19 16:41:13 +00:00

18 lines
No EOL
552 B
Python

from datetime import datetime, date
from typing import Any
def normalise_date(value: Any, allow_none: bool = True) -> date | None:
if value is None and allow_none:
return None
if isinstance(value, datetime):
return value.date()
if isinstance(value, str):
try:
return datetime.strptime(value.strip(), "%d/%m/%Y").date()
except ValueError as exc:
raise ValueError(f"Invalid date string: {value!r}") from exc
raise ValueError(f"Unexpected date value: {value!r}")