diff --git a/swh/loader/svn/converters.py b/swh/loader/svn/converters.py
--- a/swh/loader/svn/converters.py
+++ b/swh/loader/svn/converters.py
@@ -3,27 +3,32 @@
 # License: GNU General Public License version 3, or any later version
 # See top-level LICENSE file for more information
 
+import datetime
 from typing import Dict, Optional, Sequence, Tuple
 
-from swh.model.model import Person, Revision, RevisionType, TimestampWithTimezone
+import dateutil
 
-from .utils import strdate_to_timestamp
+from swh.model.model import Person, Revision, RevisionType, TimestampWithTimezone
 
 
 def svn_date_to_swh_date(strdate: Optional[str]) -> TimestampWithTimezone:
     """Convert a string date to an swh one.
 
     Args:
-        strdate: A string formatted for .utils.strdate_to_timestamp
-        to do its jobs
+        strdate: A string representing a date with format like
+        'YYYY-mm-DDTHH:MM:SS.800722Z'
 
     Returns:
         An swh date format
 
     """
-    return TimestampWithTimezone(
-        timestamp=strdate_to_timestamp(strdate), offset=0, negative_utc=False,
-    )
+    if not strdate:  # either None or empty string
+        dt = datetime.datetime(1970, 1, 1, tzinfo=datetime.timezone.utc)
+    else:
+        # TODO: Migrate to iso8601 if possible
+        dt = dateutil.parser.parse(strdate)
+        assert dt.tzinfo is not None, strdate
+    return TimestampWithTimezone.from_datetime(dt)
 
 
 def svn_author_to_swh_person(author: Optional[bytes]) -> Person:
diff --git a/swh/loader/svn/tests/test_utils.py b/swh/loader/svn/tests/test_utils.py
--- a/swh/loader/svn/tests/test_utils.py
+++ b/swh/loader/svn/tests/test_utils.py
@@ -10,7 +10,6 @@
 from subprocess import Popen
 
 from swh.loader.svn import utils
-from swh.model.model import Timestamp
 
 
 def test_outputstream():
@@ -29,22 +28,6 @@
     assert lines == ["foo", "bar", "baz"]
 
 
-def test_strdate_to_timestamp():
-    """Formatted string date should be converted in timestamp."""
-    actual_ts = utils.strdate_to_timestamp("2011-05-31T06:04:39.800722Z")
-    assert actual_ts == Timestamp(seconds=1306821879, microseconds=800722)
-
-    actual_ts = utils.strdate_to_timestamp("2011-05-31T06:03:39.123450Z")
-    assert actual_ts == Timestamp(seconds=1306821819, microseconds=123450)
-
-
-def test_strdate_to_timestamp_empty_does_not_break():
-    """Empty or None date should be timestamp 0."""
-    default_ts = Timestamp(seconds=0, microseconds=0)
-    assert default_ts == utils.strdate_to_timestamp("")
-    assert default_ts == utils.strdate_to_timestamp(None)
-
-
 def test_init_svn_repo_from_dump(datadir, tmp_path):
     """Mounting svn repository out of a dump is ok"""
     dump_name = "penguinsdbtools2018.dump.gz"
diff --git a/swh/loader/svn/utils.py b/swh/loader/svn/utils.py
--- a/swh/loader/svn/utils.py
+++ b/swh/loader/svn/utils.py
@@ -9,38 +9,11 @@
 import shutil
 from subprocess import PIPE, Popen, call
 import tempfile
-from typing import Tuple
-
-from dateutil import parser
-
-from swh.model.model import Optional, Timestamp
+from typing import Optional, Tuple
 
 logger = logging.getLogger(__name__)
 
 
-def strdate_to_timestamp(strdate: Optional[str]) -> Timestamp:
-    """Convert a string date to an int timestamp.
-
-    Args:
-        strdate: A string representing a date with format like
-        'YYYY-mm-DDTHH:MM:SS.800722Z'
-
-    Returns:
-        A couple of integers: seconds, microseconds
-
-    """
-    if strdate:
-        # TODO: Migrate to iso8601 if possible
-        dt = parser.parse(strdate)
-        ts = {
-            "seconds": int(dt.timestamp()),
-            "microseconds": dt.microsecond,
-        }
-    else:  # epoch
-        ts = {"seconds": 0, "microseconds": 0}
-    return Timestamp.from_dict(ts)
-
-
 class OutputStream:
     """Helper class to read lines from a program output while
     it is running