diff --git a/rest_framework/fields.py b/rest_framework/fields.py index deca9d90dc..a2b0f3bf18 100644 --- a/rest_framework/fields.py +++ b/rest_framework/fields.py @@ -1204,6 +1204,8 @@ def to_representation(self, value): ) if output_format.lower() == ISO_8601: + if isinstance(value, six.string_types): + value = datetime.datetime.strptime(value, '%H:%M:%S').time() return value.isoformat() return value.strftime(output_format) diff --git a/tests/test_fields.py b/tests/test_fields.py index 4b3a36f031..43441c2e7c 100644 --- a/tests/test_fields.py +++ b/tests/test_fields.py @@ -1032,6 +1032,7 @@ class TestTimeField(FieldValues): } outputs = { datetime.time(13, 00): '13:00:00', + '00:00:00': '00:00:00', None: None, '': None, }