Coverage for heritrace / utils / converters.py: 100%
11 statements
« prev ^ index » next coverage.py v7.13.4, created at 2026-07-02 10:16 +0000
« prev ^ index » next coverage.py v7.13.4, created at 2026-07-02 10:16 +0000
1# SPDX-FileCopyrightText: 2024-2025 Arcangelo Massari <arcangelo.massari@unibo.it>
2#
3# SPDX-License-Identifier: ISC
5from datetime import datetime, timezone
7import dateutil.parser
10def convert_to_datetime(date_str: str) -> datetime | None:
11 try:
12 dt = dateutil.parser.parse(date_str)
13 except (ValueError, TypeError):
14 return None
15 else:
16 if dt.tzinfo is not None:
17 dt = dt.astimezone(timezone.utc)
18 else:
19 dt = dt.replace(tzinfo=timezone.utc)
20 return dt