From 59b59fddd322bb4f6ccd66c5a3e6a33278dbca61 Mon Sep 17 00:00:00 2001 From: ducklet Date: Fri, 4 Dec 2020 18:57:53 +0100 Subject: [PATCH] urlinfo:generic: support more datetime formats --- hotdog/command/urlinfo_/generic.py | 14 +++++++++++--- 1 file changed, 11 insertions(+), 3 deletions(-) diff --git a/hotdog/command/urlinfo_/generic.py b/hotdog/command/urlinfo_/generic.py index 2a94321..e3ffaa2 100644 --- a/hotdog/command/urlinfo_/generic.py +++ b/hotdog/command/urlinfo_/generic.py @@ -150,11 +150,19 @@ def aslist(o: Any): def fromisoformat(s) -> datetime: try: - datetime.fromisoformat(s) + return datetime.fromisoformat(s) except ValueError: pass - # '2003-08-15T13:18:27Z' - return datetime.strptime(s, r"%Y-%m-%dT%H:%M:%SZ").replace(tzinfo=timezone.utc) + formats = ( + r"%Y-%m-%dT%H:%M:%SZ", # '2003-08-15T13:18:27Z', found at ??? + r"%Y-%m-%dT%H:%M:%S.000Z", # '2020-12-03T18:42:00.000Z', found at wsj + ) + for fmt in formats: + try: + return datetime.strptime(s, fmt).replace(tzinfo=timezone.utc) + except ValueError as e: + pass + raise e @dataclass