From b57b6091821ccf7d32c7c1b4c2691cdc4a48f5b0 Mon Sep 17 00:00:00 2001 From: Scott Gasch Date: Sun, 11 Dec 2022 12:02:25 -0800 Subject: [PATCH] Make argparse utils' valid_date work with the default format of UNIX date. --- src/pyutils/argparse_utils.py | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/src/pyutils/argparse_utils.py b/src/pyutils/argparse_utils.py index 765f30a..0ce429f 100644 --- a/src/pyutils/argparse_utils.py +++ b/src/pyutils/argparse_utils.py @@ -370,6 +370,9 @@ def valid_datetime(txt: str) -> datetime.datetime: >>> valid_datetime('6/5/2021 3:01:02') datetime.datetime(2021, 6, 5, 3, 1, 2) + >>> valid_datetime('Sun Dec 11 11:50:00 PST 2022') + datetime.datetime(2022, 12, 11, 11, 50) + .. note:: Because this code uses an English date-expression parsing grammar internally, much more complex datetimes can be expressed in free form. @@ -385,6 +388,13 @@ def valid_datetime(txt: str) -> datetime.datetime: dt = to_datetime(txt) if dt is not None: return dt + + # Don't choke on the default format of unix date. + try: + return datetime.datetime.strptime(txt, "%a %b %d %H:%M:%S %Z %Y") + except Exception: + pass + msg = f"Cannot parse argument as datetime: {txt}" logger.error(msg) raise argparse.ArgumentTypeError(msg) -- 2.45.2