From 37d71f6e09b6ab7f1ac3ff785225ba76843e985a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Mike=20F=C3=A4hrmann?= Date: Wed, 17 Jun 2020 21:40:16 +0200 Subject: [PATCH] strip microseconds in text.parse_datetime() --- gallery_dl/text.py | 11 +++++++---- test/test_text.py | 4 ++++ 2 files changed, 11 insertions(+), 4 deletions(-) diff --git a/gallery_dl/text.py b/gallery_dl/text.py index 4dc0963a..9a716f9a 100644 --- a/gallery_dl/text.py +++ b/gallery_dl/text.py @@ -252,10 +252,13 @@ def parse_datetime(date_string, format="%Y-%m-%dT%H:%M:%S%z", utcoffset=0): o = d.utcoffset() if o is not None: # convert to naive UTC - d = d.replace(tzinfo=None) - o - elif utcoffset: - # apply manual UTC offset - d += datetime.timedelta(0, utcoffset * -3600) + d = d.replace(tzinfo=None, microsecond=0) - o + else: + if d.microsecond: + d = d.replace(microsecond=0) + if utcoffset: + # apply manual UTC offset + d += datetime.timedelta(0, utcoffset * -3600) return d except (TypeError, IndexError, KeyError): return None diff --git a/test/test_text.py b/test/test_text.py index aeb8096d..34585d14 100644 --- a/test/test_text.py +++ b/test/test_text.py @@ -406,6 +406,10 @@ class TestText(unittest.TestCase): f("2019-05-07T21:25:02+0900"), datetime.datetime(2019, 5, 7, 12, 25, 2), ) + self.assertEqual( + f("2019-05-07T21:25:02.753+0900", "%Y-%m-%dT%H:%M:%S.%f%z"), + datetime.datetime(2019, 5, 7, 12, 25, 2), + ) self.assertEqual( f("2019-05-07T21:25:02", "%Y-%m-%dT%H:%M:%S", utcoffset=9), datetime.datetime(2019, 5, 7, 12, 25, 2),