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

1# SPDX-FileCopyrightText: 2024-2025 Arcangelo Massari <arcangelo.massari@unibo.it> 

2# 

3# SPDX-License-Identifier: ISC 

4 

5from datetime import timezone 

6 

7import dateutil.parser 

8 

9 

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