From 14abee74a3c15481a63cb9c1ad3062ff143495e1 Mon Sep 17 00:00:00 2001 From: Allan Galarza Date: Thu, 27 Jun 2024 14:08:02 -0700 Subject: [PATCH] Add more supported date formats See #45 --- tibiawikisql/utils.py | 21 +++++++++++++++------ 1 file changed, 15 insertions(+), 6 deletions(-) diff --git a/tibiawikisql/utils.py b/tibiawikisql/utils.py index 17fb9d2..de93d78 100644 --- a/tibiawikisql/utils.py +++ b/tibiawikisql/utils.py @@ -188,6 +188,7 @@ def parse_date(value): - June 28, 2019 - Aug 21, 2014 + - May 14, 2024 17:45 Parameters ---------- @@ -200,14 +201,22 @@ def parse_date(value): The date represented by the string. """ value = value.strip() - try: - dt = datetime.datetime.strptime(value, "%B %d, %Y") - except ValueError: + date_formats = [ + "%B %d, %Y", + "%b %d, %Y", + "%Y", + "%B %d, %Y %H:%M", + "%b %d, %Y %H:%M", + "%Y %H:%M", + ] + for date_format in date_formats: try: - dt = datetime.datetime.strptime(value, "%b %d, %Y") + dt = datetime.datetime.strptime(value, date_format) + return dt.date().isoformat() except ValueError: - dt = datetime.datetime.strptime(value, "%Y") - return dt.date().isoformat() + continue + + raise ValueError(f"Date format for value '{value}' not recognized") def parse_float(value, default=0.0):