diff --git a/api/DateFormatter.py b/api/DateFormatter.py
new file mode 100644
index 0000000000000000000000000000000000000000..3531ef2891f742d85f6dbb08376cb383451703cd
--- /dev/null
+++ b/api/DateFormatter.py
@@ -0,0 +1,12 @@
+from datetime import datetime, date
+
+
+class DateFormatter:
+    DEFAULT_DATE = date(2000, 1, 1)
+    FORMAT = "%d.%m.%Y"
+
+    @staticmethod
+    def format(dateObject):
+        if dateObject == DateFormatter.DEFAULT_DATE:
+            return "-"
+        return datetime.strftime(dateObject, DateFormatter.FORMAT)
diff --git a/api/blueprints/MilestoneAPI.py b/api/blueprints/MilestoneAPI.py
index 3dce87a9c2a01b2a5b0686c177b4a02d51483b7c..a1ef6f75b1285887151321604b383b5f856a241b 100644
--- a/api/blueprints/MilestoneAPI.py
+++ b/api/blueprints/MilestoneAPI.py
@@ -3,6 +3,7 @@ from enum import Enum
 from flask import Blueprint, jsonify, request
 from flask_jwt_extended import jwt_required
 
+from DateFormatter import DateFormatter
 from RequestValidator import RequestValidator, ValidationError
 
 
@@ -21,24 +22,42 @@ class MilestoneParameters(Enum):
         return [m.value for m in MilestoneParameters]
 
 
+def prepare_milestone(milestone):
+    milestone[MilestoneParameters.DUE_DATE.value] = DateFormatter.format(
+        milestone[MilestoneParameters.DUE_DATE.value])
+    milestone[MilestoneParameters.COMPLETION_DATE.value] = DateFormatter.format(
+        milestone[MilestoneParameters.COMPLETION_DATE.value])
+    return milestone
+
+
 def construct_blueprint(database):
     milestone_api = Blueprint('milestone_api', __name__)
 
     @milestone_api.route('/milestones/<int:roadmapID>', methods=['GET'])
     def get_milestones(roadmapID):
-        return jsonify(database.get_milestones(roadmapID))
+        milestones = database.get_milestones(roadmapID)
+        results = []
+        for m in milestones.json:
+            results.append(prepare_milestone(m))
+        return jsonify(results)
 
     @milestone_api.route('/milestones/<int:roadmapID>/open', methods=['GET'])
     def get_open_milestones(roadmapID):
-        return jsonify(database.get_open_milestones(roadmapID))
+        milestones = database.get_open_milestones(roadmapID)
+        results = []
+        for m in milestones:
+            results.append(prepare_milestone(m))
+        return jsonify(results)
 
     @milestone_api.route('/milestones/<int:roadmapID>/latest', methods=['GET'])
     def get_latest_milestone(roadmapID):
-        return jsonify(database.get_latest_milestone(roadmapID))
+        milestone = database.get_latest_milestone(roadmapID)
+        return jsonify(prepare_milestone(milestone))
 
     @milestone_api.route('/milestone/<int:milestoneID>', methods=['GET'])
     def get_milestone(milestoneID):
-        return jsonify(database.get_milestone(milestoneID))
+        milestone = database.get_milestone(milestoneID)
+        return jsonify(prepare_milestone(milestone))
 
     @milestone_api.route('/milestone', methods=['POST'])
     @jwt_required
diff --git a/api/blueprints/RoadmapAPI.py b/api/blueprints/RoadmapAPI.py
index 003bfa2fba5ba72e456285d228b3ccf5ea9be945..a3888c96297d2697be27bdf06d787d12b6e120c2 100644
--- a/api/blueprints/RoadmapAPI.py
+++ b/api/blueprints/RoadmapAPI.py
@@ -4,10 +4,9 @@ from enum import Enum
 from flask import Blueprint, jsonify, request
 from flask_jwt_extended import jwt_required
 
+from DateFormatter import DateFormatter
 from RequestValidator import RequestValidator, ValidationError
 
-DEFAULT_DATE = date(2000, 1, 1)
-
 
 class RoadmapParameters(Enum):
     ID = "ID"
@@ -26,21 +25,14 @@ def construct_blueprint(database):
         return jsonify(database.get_roadmap(roadmapID))
 
     @roadmap_api.route('/roadmap/<int:roadmapID>/full', methods=['GET'])
-    def get_roadmap_fast(roadmapID):
+    def get_roadmap_full(roadmapID):
         roadmap = database.get_roadmap(roadmapID)
         roadmap["milestones"] = database.get_milestones(roadmapID)
 
         numberOfOpenMilestones = 0
         for milestone in roadmap["milestones"]:
-            if milestone["DueDate"] == DEFAULT_DATE:
-                milestone["DueDate"] = "-"
-            else:
-                milestone["DueDate"] = datetime.strftime(milestone["DueDate"], "%d.%m.%Y")
-
-            if milestone["CompletionDate"] == DEFAULT_DATE:
-                milestone["CompletionDate"] = "-"
-            else:
-                milestone["CompletionDate"] = datetime.strftime(milestone["CompletionDate"], "%d.%m.%Y")
+            milestone["DueDate"] = DateFormatter.format(milestone["DueDate"])
+            milestone["CompletionDate"] = DateFormatter.format(milestone["CompletionDate"])
 
             if milestone["Status"] == 0:
                 numberOfOpenMilestones += 1
@@ -91,7 +83,8 @@ def construct_blueprint(database):
     @jwt_required
     def update_roadmap():
         try:
-            parameters = RequestValidator.validate(request, [RoadmapParameters.ID.value, RoadmapParameters.PROJECT_NAME.value])
+            parameters = RequestValidator.validate(request,
+                                                   [RoadmapParameters.ID.value, RoadmapParameters.PROJECT_NAME.value])
         except ValidationError as e:
             return e.response, 400
 
@@ -102,7 +95,8 @@ def construct_blueprint(database):
         if __name_already_used(parameters[RoadmapParameters.PROJECT_NAME.value]):
             return jsonify({"success": False, "msg": "A roadmap with this name already exists"}), 400
 
-        database.update_roadmap(parameters[RoadmapParameters.ID.value], parameters[RoadmapParameters.PROJECT_NAME.value])
+        database.update_roadmap(parameters[RoadmapParameters.ID.value],
+                                parameters[RoadmapParameters.PROJECT_NAME.value])
         return jsonify({"success": True})
 
     def __roadmaps_exists(roadmapID):