diff --git a/.travis.yml b/.travis.yml
index 7070c17..ed1aec6 100644
--- a/.travis.yml
+++ b/.travis.yml
@@ -1,6 +1,5 @@
 language: python
 python:
-  - "2.6"
   - "2.7"
   - "3.3"
   - "3.4"
diff --git a/delorean/interface.py b/delorean/interface.py
index 6821645..bd6fb83 100644
--- a/delorean/interface.py
+++ b/delorean/interface.py
@@ -3,7 +3,7 @@ from datetime import datetime
 import pytz
 
 from dateutil.rrule import rrule, DAILY, HOURLY, MONTHLY, YEARLY
-from dateutil.parser import parse as capture
+from dateutil.parser import parse as capture, isoparse as isocapture
 from dateutil.tz import tzlocal
 from dateutil.tz import tzoffset
 from tzlocal import get_localzone
@@ -12,13 +12,14 @@ from .exceptions import DeloreanInvalidDatetime
 from .dates import Delorean, is_datetime_naive, datetime_timezone
 
 
-def parse(datetime_str, timezone=None, dayfirst=True, yearfirst=True):
+def parse(datetime_str, timezone=None, isofirst=True, dayfirst=True, yearfirst=True):
     """
     Parses a datetime string and returns a `Delorean` object.
 
     :param datetime_str: The string to be interpreted into a `Delorean` object.
     :param timezone: Pass this parameter and the returned Delorean object will be normalized to this timezone. Any
         offsets passed as part of datetime_str will be ignored.
+    :param isofirst: try to parse string as date in ISO format before everything else.
     :param dayfirst: Whether to interpret the first value in an ambiguous 3-integer date (ex. 01/05/09) as the day
         (True) or month (False). If yearfirst is set to True, this distinguishes between YDM and YMD.
     :param yearfirst: Whether to interpret the first value in an ambiguous 3-integer date (ex. 01/05/09) as the
@@ -65,7 +66,15 @@ def parse(datetime_str, timezone=None, dayfirst=True, yearfirst=True):
         Delorean(datetime=datetime.datetime(2015, 1, 1, 0, 1, 2), timezone='UTC')
 
     """
-    dt = capture(datetime_str, dayfirst=dayfirst, yearfirst=yearfirst)
+    # parse string to datetime object
+    dt = None
+    if isofirst:
+        try:
+            dt = isocapture(datetime_str)
+        except Exception:
+            pass
+    if dt is None:
+        dt = capture(datetime_str, dayfirst=dayfirst, yearfirst=yearfirst)
 
     if timezone:
         dt = dt.replace(tzinfo=None)
diff --git a/requirements.txt b/requirements.txt
index a0c2bce..8cd55f9 100644
--- a/requirements.txt
+++ b/requirements.txt
@@ -1,12 +1,12 @@
 #
 # This file is autogenerated by pip-compile
-# Make changes in requirements.in, then run this to update:
+# To update, run:
 #
-#    pip-compile requirements.in
+#    pip-compile --output-file requirements.txt requirements.in
 #
-babel==2.1.1
+babel==2.5.3
 humanize==0.5.1
-python-dateutil==2.4.2
-pytz==2015.7
-six==1.10.0               # via python-dateutil
-tzlocal==1.2
+python-dateutil==2.7.5
+pytz==2018.7
+six==1.11.0               # via python-dateutil
+tzlocal==1.5.1
diff --git a/setup.py b/setup.py
index 5bdcd7d..600dbb5 100644
--- a/setup.py
+++ b/setup.py
@@ -11,7 +11,7 @@ from version import __version__
 dependencies = [
     'babel>=2.1.1',
     'humanize>=0.5.1',
-    'python-dateutil>=2.4.2',
+    'python-dateutil>=2.7.0',
     'pytz>=2015.7',
     'tzlocal>=1.2']
 
@@ -22,12 +22,10 @@ setup(
     url='https://github.com/myusuf3/delorean',
     author='Mahdi Yusuf',
     author_email="yusuf.mahdi@gmail.com",
-    packages=[
-    'delorean',
-    ],
+    packages=['delorean'],
     license='MIT license',
     install_requires=dependencies,
-    test_suite = 'tests.test_data',
+    test_suite='tests.test_data',
     long_description=open('README.rst').read(),
     classifiers=[
         'Development Status :: 4 - Beta',

parse function does not parse date string correctly
The dayfirst parameter is default to True, however, it does not make any sense when parse a full formatted date time string as below:

```
from delorean import parse
parse('2017-05-02T05:38:49.899Z').datetime
datetime.datetime(2017, 2, 5, 5, 38, 49, 899000, tzinfo=<UTC>)
```

diff --git a/tests/delorean_tests.py b/tests/delorean_tests.py
index 0d05c40..8da3bef 100644
--- a/tests/delorean_tests.py
+++ b/tests/delorean_tests.py
@@ -262,6 +262,12 @@ class DeloreanTests(unittest.TestCase):
         dt1 = pytz.utc.localize(datetime(2003, 9, 25, 10, 36, 28))
         self.assertEqual(do.datetime, dt1)
 
+    def test_parse_iso(self):
+        # https://github.com/myusuf3/delorean/issues/101
+        do = delorean.parse('2017-05-02T05:38:49Z')
+        dt1 = pytz.utc.localize(datetime(2017, 5, 2, 5, 38, 49))
+        self.assertEqual(do.datetime, dt1)
+
     def test_parse_default(self):
         do = delorean.parse('2016-07-01T11:00:00+02:00', dayfirst=False)
         dt1 = delorean.Delorean(datetime=datetime(2016, 7, 1, 11, 0), timezone=pytz.FixedOffset(120))

pip install -e .[dev]
parse_log_pytest
requirements.txt
pytest pytest-mock mock
apt-get update apt-get install -y gcc
3.9
requirements/base.txt
pytest --no-header -rA --tb=line --color=no -p no:cacheprovider -W ignore::DeprecationWarning
babel==2.17.0
-e git+https://github.com/myusuf3/delorean.git@bb4611a2c3bd502ea4ec1f1e2b697e21fbab6dc9#egg=Delorean
exceptiongroup==1.2.2
humanize==4.12.2
iniconfig==2.1.0
mock==5.2.0
packaging==24.2
pluggy==1.5.0
pytest==8.3.5
pytest-mock==3.14.0
python-dateutil==2.9.0.post0
pytz==2025.2
six==1.17.0
tomli==2.2.1
tzlocal==5.3.1

name: delorean
channels:
  - defaults
  - https://repo.anaconda.com/pkgs/main
  - https://repo.anaconda.com/pkgs/r
  - conda-forge
dependencies:
  - _libgcc_mutex=0.1=main
  - _openmp_mutex=5.1=1_gnu
  - ca-certificates=2025.2.25=h06a4308_0
  - ld_impl_linux-64=2.40=h12ee557_0
  - libffi=3.4.4=h6a678d5_1
  - libgcc-ng=11.2.0=h1234567_1
  - libgomp=11.2.0=h1234567_1
  - libstdcxx-ng=11.2.0=h1234567_1
  - ncurses=6.4=h6a678d5_0
  - openssl=3.0.16=h5eee18b_0
  - pip=25.0=py39h06a4308_0
  - python=3.9.21=he870216_1
  - readline=8.2=h5eee18b_0
  - setuptools=75.8.0=py39h06a4308_0
  - sqlite=3.45.3=h5eee18b_0
  - tk=8.6.14=h39e8969_0
  - tzdata=2025a=h04d1e81_0
  - wheel=0.45.1=py39h06a4308_0
  - xz=5.6.4=h5eee18b_1
  - zlib=1.2.13=h5eee18b_1
  - pip:
      - babel==2.17.0
      - exceptiongroup==1.2.2
      - humanize==4.12.2
      - iniconfig==2.1.0
      - mock==5.2.0
      - packaging==24.2
      - pluggy==1.5.0
      - pytest==8.3.5
      - pytest-mock==3.14.0
      - python-dateutil==2.9.0.post0
      - pytz==2025.2
      - six==1.17.0
      - tomli==2.2.1
      - tzlocal==5.3.1
prefix: /opt/conda/envs/delorean

tests/delorean_tests.py::DeloreanTests::test_parse_iso
tests/delorean_tests.py::DeloreanTests::test_date tests/delorean_tests.py::DeloreanTests::test_date_failure tests/delorean_tests.py::DeloreanTests::test_datetime tests/delorean_tests.py::DeloreanTests::test_datetime_localization tests/delorean_tests.py::DeloreanTests::test_datetime_timezone tests/delorean_tests.py::DeloreanTests::test_datetime_timezone_default tests/delorean_tests.py::DeloreanTests::test_delorean_with_datetime tests/delorean_tests.py::DeloreanTests::test_delorean_with_only_timezone tests/delorean_tests.py::DeloreanTests::test_delorean_with_timezone tests/delorean_tests.py::DeloreanTests::test_end_of_day tests/delorean_tests.py::DeloreanTests::test_epoch tests/delorean_tests.py::DeloreanTests::test_epoch_creation tests/delorean_tests.py::DeloreanTests::test_equal tests/delorean_tests.py::DeloreanTests::test_failure_truncation tests/delorean_tests.py::DeloreanTests::test_ge tests/delorean_tests.py::DeloreanTests::test_gt tests/delorean_tests.py::DeloreanTests::test_humanize_future tests/delorean_tests.py::DeloreanTests::test_humanize_past tests/delorean_tests.py::DeloreanTests::test_initialize_from_datetime_naive tests/delorean_tests.py::DeloreanTests::test_initialize_with_datetime_with_timezone tests/delorean_tests.py::DeloreanTests::test_initialize_with_datetime_without_timezone tests/delorean_tests.py::DeloreanTests::test_initialize_with_invalid_datetime tests/delorean_tests.py::DeloreanTests::test_initialize_with_naive_datetime_with_dateutil_timezone tests/delorean_tests.py::DeloreanTests::test_initialize_with_naive_datetime_with_pytz_timezone tests/delorean_tests.py::DeloreanTests::test_initialize_with_naive_datetime_with_string_timezone tests/delorean_tests.py::DeloreanTests::test_initialize_with_naive_datetime_without_timezone tests/delorean_tests.py::DeloreanTests::test_initialize_with_tzinfo_generic tests/delorean_tests.py::DeloreanTests::test_initialize_with_tzinfo_pytz tests/delorean_tests.py::DeloreanTests::test_initialize_without_datetime_with_dateutil_timezone tests/delorean_tests.py::DeloreanTests::test_initialize_without_datetime_with_pytz_timezone tests/delorean_tests.py::DeloreanTests::test_initialize_without_datetime_with_string_timezone tests/delorean_tests.py::DeloreanTests::test_initialize_without_datetime_without_timezone tests/delorean_tests.py::DeloreanTests::test_le tests/delorean_tests.py::DeloreanTests::test_localize tests/delorean_tests.py::DeloreanTests::test_localize_datetime tests/delorean_tests.py::DeloreanTests::test_localize_failure tests/delorean_tests.py::DeloreanTests::test_lt tests/delorean_tests.py::DeloreanTests::test_midnight tests/delorean_tests.py::DeloreanTests::test_move_day_function tests/delorean_tests.py::DeloreanTests::test_move_hour tests/delorean_tests.py::DeloreanTests::test_move_hour_function tests/delorean_tests.py::DeloreanTests::test_move_minute tests/delorean_tests.py::DeloreanTests::test_move_minute_function tests/delorean_tests.py::DeloreanTests::test_move_month tests/delorean_tests.py::DeloreanTests::test_move_month_function tests/delorean_tests.py::DeloreanTests::test_move_namedday tests/delorean_tests.py::DeloreanTests::test_move_namedday_function tests/delorean_tests.py::DeloreanTests::test_move_second_function tests/delorean_tests.py::DeloreanTests::test_move_shift_minute tests/delorean_tests.py::DeloreanTests::test_move_week tests/delorean_tests.py::DeloreanTests::test_move_week_function tests/delorean_tests.py::DeloreanTests::test_move_year tests/delorean_tests.py::DeloreanTests::test_move_year_function tests/delorean_tests.py::DeloreanTests::test_naive tests/delorean_tests.py::DeloreanTests::test_naive_timezone tests/delorean_tests.py::DeloreanTests::test_normalize tests/delorean_tests.py::DeloreanTests::test_normalize_failure tests/delorean_tests.py::DeloreanTests::test_not_equal tests/delorean_tests.py::DeloreanTests::test_parse tests/delorean_tests.py::DeloreanTests::test_parse_default tests/delorean_tests.py::DeloreanTests::test_parse_with_fixed_offset_timezone tests/delorean_tests.py::DeloreanTests::test_parse_with_invalid_datetime_string tests/delorean_tests.py::DeloreanTests::test_parse_with_overriding_timezone_parameter tests/delorean_tests.py::DeloreanTests::test_parse_with_timezone_parameter tests/delorean_tests.py::DeloreanTests::test_parse_with_timezone_year_fill tests/delorean_tests.py::DeloreanTests::test_parse_with_tzlocal_timezone tests/delorean_tests.py::DeloreanTests::test_parse_with_tzutc_timezone tests/delorean_tests.py::DeloreanTests::test_parse_with_utc_year_fill tests/delorean_tests.py::DeloreanTests::test_range_count tests/delorean_tests.py::DeloreanTests::test_range_with_interval tests/delorean_tests.py::DeloreanTests::test_range_with_start tests/delorean_tests.py::DeloreanTests::test_range_with_start_and_stop tests/delorean_tests.py::DeloreanTests::test_replace tests/delorean_tests.py::DeloreanTests::test_repr_fixed_offset_timezone tests/delorean_tests.py::DeloreanTests::test_repr_pytz_timezone tests/delorean_tests.py::DeloreanTests::test_repr_string_timezone tests/delorean_tests.py::DeloreanTests::test_shift_failure tests/delorean_tests.py::DeloreanTests::test_start_of_day tests/delorean_tests.py::DeloreanTests::test_stops_bymonth tests/delorean_tests.py::DeloreanTests::test_timedelta_arithmetic tests/delorean_tests.py::DeloreanTests::test_timezone tests/delorean_tests.py::DeloreanTests::test_timezone_delorean_to_datetime_to_delorean_non_utc tests/delorean_tests.py::DeloreanTests::test_timezone_delorean_to_datetime_to_delorean_utc tests/delorean_tests.py::DeloreanTests::test_truncation_day tests/delorean_tests.py::DeloreanTests::test_truncation_hour tests/delorean_tests.py::DeloreanTests::test_truncation_minute tests/delorean_tests.py::DeloreanTests::test_truncation_month tests/delorean_tests.py::DeloreanTests::test_truncation_second tests/delorean_tests.py::DeloreanTests::test_truncation_year
setup.py .travis.yml requirements.txt delorean/interface.py
setup.py .travis.yml requirements.txt delorean/interface.py