Mercurial > libervia-backend
comparison sat/tools/common/date_utils.py @ 3629:025ea418032f
tools (common/date_utils): parse `now` alone (when used without relative delta)
author | Goffi <goffi@goffi.org> |
---|---|
date | Fri, 27 Aug 2021 14:48:38 +0200 |
parents | b258dce27d6d |
children | bef32f3ccc06 |
comparison
equal
deleted
inserted
replaced
3628:d685299645fa | 3629:025ea418032f |
---|---|
23 from sat.core.i18n import _ | 23 from sat.core.i18n import _ |
24 import datetime | 24 import datetime |
25 from dateutil import tz, parser | 25 from dateutil import tz, parser |
26 from dateutil.relativedelta import relativedelta | 26 from dateutil.relativedelta import relativedelta |
27 from dateutil.utils import default_tzinfo | 27 from dateutil.utils import default_tzinfo |
28 from dateutil.parser import ParserError | |
28 from babel import dates | 29 from babel import dates |
29 import calendar | 30 import calendar |
30 import time | 31 import time |
31 import re | 32 import re |
32 | 33 |
48 @return (int): timestamp | 49 @return (int): timestamp |
49 """ | 50 """ |
50 value = str(value).strip() | 51 value = str(value).strip() |
51 dayfirst = False if YEAR_FIRST_RE.match(value) else True | 52 dayfirst = False if YEAR_FIRST_RE.match(value) else True |
52 | 53 |
53 dt = default_tzinfo( | 54 try: |
54 parser.parse(value, default=DEFAULT_DATETIME, dayfirst=dayfirst), | 55 dt = default_tzinfo( |
55 default_tz) | 56 parser.parse(value, default=DEFAULT_DATETIME, dayfirst=dayfirst), |
57 default_tz) | |
58 except ParserError as e: | |
59 if value == "now": | |
60 dt = datetime.datetime.now(tz.tzutc()) | |
61 else: | |
62 raise e | |
56 return calendar.timegm(dt.utctimetuple()) | 63 return calendar.timegm(dt.utctimetuple()) |
57 | 64 |
58 def date_parse_ext(value, default_tz=TZ_UTC): | 65 def date_parse_ext(value, default_tz=TZ_UTC): |
59 """Extended date parse which accept relative date | 66 """Extended date parse which accept relative date |
60 | 67 |