From 803d4451ccc18e147363b7824cd38db4307e0740 Mon Sep 17 00:00:00 2001 From: Steven Willis Date: Tue, 25 May 2021 03:59:36 -0400 Subject: [PATCH] Consider RETURN_TIME_AS_PERIOD for timestamp times (#922) --- dateparser/date.py | 2 +- tests/test_date_parser.py | 16 ++++++++++++++++ 2 files changed, 17 insertions(+), 1 deletion(-) diff --git a/dateparser/date.py b/dateparser/date.py index 01e269554..54efe5351 100644 --- a/dateparser/date.py +++ b/dateparser/date.py @@ -187,7 +187,7 @@ def _parse(self): def _try_timestamp(self): return DateData( date_obj=get_date_from_timestamp(self.date_string, self._settings), - period='day', + period='time' if self._settings.RETURN_TIME_AS_PERIOD else 'day', ) def _try_freshness_parser(self): diff --git a/tests/test_date_parser.py b/tests/test_date_parser.py index 342ea2f30..cb480c7c5 100644 --- a/tests/test_date_parser.py +++ b/tests/test_date_parser.py @@ -642,6 +642,22 @@ def test_parse_timestamp(self, date_string, expected): self.given_parser(settings={'TO_TIMEZONE': 'UTC'}) self.when_date_is_parsed(date_string) self.then_date_obj_exactly_is(expected) + self.then_period_is('day') + + @parameterized.expand([ + # Epoch timestamps. + param('1484823450', expected=datetime(2017, 1, 19, 10, 57, 30)), + param('1436745600000', expected=datetime(2015, 7, 13, 0, 0)), + param('1015673450', expected=datetime(2002, 3, 9, 11, 30, 50)), + param('2016-09-23T02:54:32.845Z', expected=datetime(2016, 9, 23, 2, 54, 32, 845000, + tzinfo=StaticTzInfo('Z', timedelta(0)))) + ]) + def test_parse_timestamp_with_time_as_period(self, date_string, expected): + self.given_local_tz_offset(0) + self.given_parser(settings={'TO_TIMEZONE': 'UTC', 'RETURN_TIME_AS_PERIOD': True}) + self.when_date_is_parsed(date_string) + self.then_date_obj_exactly_is(expected) + self.then_period_is('time') @parameterized.expand([ param('10 December', expected=datetime(2015, 12, 10), period='day'),