From 309e5eebb9046535099659a7d3de6a36a66a36e8 Mon Sep 17 00:00:00 2001 From: Goffi Date: Fri, 1 Mar 2019 15:35:55 +0100 Subject: [PATCH] tools(common/date_utils): fixed order on year first + set default date for date_parse --- sat/tools/common/date_utils.py | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/sat/tools/common/date_utils.py b/sat/tools/common/date_utils.py index 6bc765d3..531bf304 100644 --- a/sat/tools/common/date_utils.py +++ b/sat/tools/common/date_utils.py @@ -33,9 +33,11 @@ import re RELATIVE_RE = re.compile(ur"(?P.*?)(?P[-+]?) *(?P\d+) *" ur"(?P(second|minute|hour|day|week|month|year))s?" ur"(?P +ago)?", re.I) - +YEAR_FIRST_RE = re.compile(ur"\d{4}[^\d]+") TZ_UTC = tz.tzutc() TZ_LOCAL = tz.gettz() +# used to replace values when something is missing +DEFAULT_DATETIME = datetime.datetime(2000, 01, 01) def date_parse(value, default_tz=TZ_UTC): @@ -45,7 +47,12 @@ def date_parse(value, default_tz=TZ_UTC): @param default_tz(datetime.tzinfo): default timezone @return (int): timestamp """ - dt = default_tzinfo(parser.parse(unicode(value), dayfirst=True), default_tz) + value = unicode(value).strip() + dayfirst = False if YEAR_FIRST_RE.match(value) else True + + dt = default_tzinfo( + parser.parse(value, default=DEFAULT_DATETIME, dayfirst=dayfirst), + default_tz) return calendar.timegm(dt.utctimetuple()) def date_parse_ext(value, default_tz=TZ_UTC):