diff --git a/wsme/utils.py b/wsme/utils.py index bdeeb15..5d926b8 100644 --- a/wsme/utils.py +++ b/wsme/utils.py @@ -3,6 +3,11 @@ import datetime import re from six.moves import builtins +try: + import dateutil.parser +except: + dateutil = None # noqa + date_re = r'(?P-?\d{4,})-(?P\d{2})-(?P\d{2})' time_re = r'(?P\d{2}):(?P\d{2}):(?P\d{2})' + \ r'(\.(?P\d+))?' @@ -56,6 +61,8 @@ def parse_isotime(value): # TODO handle timezone def parse_isodatetime(value): + if dateutil: + return dateutil.parser.parse(value) m = datetime_re.match(value) if m is None: raise ValueError("'%s' is not a legal datetime value" % (value))