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