From bf5d0824d5f633c84286ae008d42b50ce7de5d64 Mon Sep 17 00:00:00 2001 From: 7nimor <7nimor@gmail.com> Date: Sun, 7 Dec 2025 08:36:34 +0330 Subject: [PATCH 1/2] update convert_str_to_date --- common/helper_excel.py | 35 +++++++++++++++++++++++++---------- 1 file changed, 25 insertions(+), 10 deletions(-) diff --git a/common/helper_excel.py b/common/helper_excel.py index 48baeaf..550e731 100644 --- a/common/helper_excel.py +++ b/common/helper_excel.py @@ -304,14 +304,29 @@ def to_locale_str(a): def convert_str_to_date(string): string = str(string).strip() - try: - return datetime.strptime(string, '%Y-%m-%dT%H:%M:%S.%fZ').date() - except ValueError: - try: - return datetime.strptime(string, '%Y-%m-%dT%H:%M:%SZ').date() # Added format without milliseconds - except ValueError: - try: - return datetime.strptime(string, '%Y-%m-%d').date() - except ValueError: - return None + + date_formats = [ + '%Y-%m-%dT%H:%M:%S.%fZ', + '%Y-%m-%dT%H:%M:%SZ', + '%Y-%m-%dT%H:%M:%S.%f%z', + '%Y-%m-%dT%H:%M:%S%z', + '%Y-%m-%dT%H:%M:%S.%f', + '%Y-%m-%dT%H:%M:%S', + '%Y-%m-%d %H:%M:%S.%f', + '%Y-%m-%d %H:%M:%S', + '%Y-%m-%dT%H:%M:%S.%f%z', + '%Y-%m-%d' + ] + + for fmt in date_formats: + try: + if with_datetime: + date = datetime.strptime(string, fmt) + else: + date = datetime.strptime(string, fmt).date() + return date + except ValueError: + continue + + return None From b1157a6bc2ca2d5cf8a4ead09c4094013cb93240 Mon Sep 17 00:00:00 2001 From: 7nimor <7nimor@gmail.com> Date: Sun, 7 Dec 2025 08:56:58 +0330 Subject: [PATCH 2/2] update convert_str_to_date --- common/helper_excel.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/common/helper_excel.py b/common/helper_excel.py index 550e731..4abc9c0 100644 --- a/common/helper_excel.py +++ b/common/helper_excel.py @@ -302,7 +302,7 @@ def to_locale_str(a): return "{:,}".format(int(a)) -def convert_str_to_date(string): +def convert_str_to_date(string,with_datetime=None): string = str(string).strip() date_formats = [