diff --git a/django/website/hid/tests/views_tests.py b/django/website/hid/tests/views_tests.py
index af305258f431b320507d47317e5c24fad3a9a330..5aa709778e75c1a540d7b437ddc03ab59d9061f4 100644
--- a/django/website/hid/tests/views_tests.py
+++ b/django/website/hid/tests/views_tests.py
@@ -94,6 +94,7 @@ def test_get_categories_filters_out_removed():
 @pytest.fixture
 def request_item():
     '''Create item and request'''
+
     msg = {'body': "Message text"}
     transport.items.create(msg)
 
diff --git a/django/website/settings.py b/django/website/settings.py
index e39f65f2d2408b11ee5173143bfa56e4b112cd7e..f6c0b5a1f18c65db373e72237e51376705d8a8f6 100644
--- a/django/website/settings.py
+++ b/django/website/settings.py
@@ -63,7 +63,7 @@ USE_L10N = True
 # See: https://docs.djangoproject.com/en/dev/ref/settings/#use-tz
 USE_TZ = True
 
-SHORT_DATETIME_FORMAT = 'D d/m/y H:i'
+SHORT_DATETIME_FORMAT = 'd M Y H:i'
 # TODO this is used in hid/tables.py
 # and should probably use FORMAT_MODULE_PATH instead.?
 
diff --git a/django/website/transport/items.py b/django/website/transport/items.py
index 31dbf26f5a85998473638e47a4d6c545d939e86c..a8bb9cf66d3802385229a78e7ee5110cc1dcedbd 100644
--- a/django/website/transport/items.py
+++ b/django/website/transport/items.py
@@ -1,4 +1,5 @@
 from django.core.urlresolvers import reverse
+from django.utils.dateparse import parse_datetime
 from rest_framework.test import APIRequestFactory
 from rest_framework import status
 from rest_api.views import ItemViewSet
@@ -32,7 +33,22 @@ def list(**kwargs):
     # FIXME: currently only body exact filtering is supported
     view = get_view()
     request = request_factory.get(url(), kwargs)
-    return view(request).data
+
+    items = view(request).data
+
+    date_fields = ('created', 'timestamp')
+
+    for item in items:
+        item_dict = dict(item)
+        for date_field in date_fields:
+            value = item_dict[date_field]
+            if value is not None:
+                item_dict[date_field] = parse_datetime(value)
+
+        item.update(item_dict)
+
+    return items
+
 
 
 def create(item):
diff --git a/django/website/transport/tests/item_list_tests.py b/django/website/transport/tests/item_list_tests.py
index 479a26ee4cb3f4d09d21b290ec70cf044c756be0..bb9e1bc59b8682fca782579564e9282f728a2e0d 100644
--- a/django/website/transport/tests/item_list_tests.py
+++ b/django/website/transport/tests/item_list_tests.py
@@ -1,4 +1,6 @@
 from __future__ import unicode_literals, absolute_import
+
+from datetime import datetime
 import pytest
 
 from data_layer.tests.factories import ItemFactory
@@ -31,3 +33,32 @@ def test_list_items_filters_by_body():
     assert len(items) == 1
     [item] = items
     assert item['body'] == 'one'
+
+
+@pytest.mark.django_db
+def test_date_fields_are_converted_to_datetimes():
+    stored_item = ItemFactory()
+
+    retrieved_items = transport.items.list()
+
+    [retrieved_item] = retrieved_items
+
+    date_fields = ('timestamp', 'created')
+
+    for date_field in date_fields:
+        stored_date = getattr(stored_item, date_field).replace(
+            microsecond=0  # MySQL discards microseconds
+        )
+
+        assert stored_date == retrieved_item[date_field]
+
+
+@pytest.mark.django_db
+def test_null_date_field_not_converted_to_datetime():
+    ItemFactory(timestamp=None)
+
+    retrieved_items = transport.items.list()
+
+    [retrieved_item] = retrieved_items
+
+    assert retrieved_item['timestamp'] is None