# HG changeset patch # User Goffi # Date 1551450955 -3600 # Node ID 1b6547fb80dad02422a9e5964274ae571e01c377 # Parent 0ae25883e223b8662d9c1a462cb8488493195c7c tools(common/date_utils): fixed order on year first + set default date for date_parse diff -r 0ae25883e223 -r 1b6547fb80da sat/tools/common/date_utils.py --- a/sat/tools/common/date_utils.py Fri Mar 01 14:45:50 2019 +0100 +++ b/sat/tools/common/date_utils.py Fri Mar 01 15:35:55 2019 +0100 @@ -33,9 +33,11 @@ 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 @@ @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):