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