diff --git a/mellon/utils.py b/mellon/utils.py index b9a810d..a1b5276 100644 --- a/mellon/utils.py +++ b/mellon/utils.py @@ -2,7 +2,7 @@ import logging import datetime import importlib from functools import wraps -import dateutil.parser +import isodate from django.core.urlresolvers import reverse from django.template.loader import render_to_string @@ -115,12 +115,15 @@ def flatten_datetime(d): return d -def iso8601_to_datetime(date_string): - '''Convert a string formatted as an ISO8601 date into a time_t +def iso8601_to_datetime(date_string, default=None): + '''Convert a string formatted as an ISO8601 date into a datetime value. This function ignores the sub-second resolution''' - dt = dateutil.parser.parse(date_string) + try: + dt = isodate.parse_datetime(date_string) + except: + return default if is_aware(dt): if not settings.USE_TZ: dt = make_naive(dt, get_default_timezone()) diff --git a/setup.py b/setup.py index 76bd426..947a79e 100755 --- a/setup.py +++ b/setup.py @@ -93,7 +93,7 @@ setup(name="django-mellon", install_requires=[ 'django>=1.5', 'requests', - 'python-dateutil', + 'isodate', ], setup_requires=[ 'django',