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