how to format time in django-rest-framework's serializer?
22,844
Solution 1
The usual Python datetime format will work:
# for DateField
date = serializers.DateField(format="%Y-%m-%d")
# for DateTimeField
time = serializers.DateTimeField(format="%Y-%m-%d %H:%M:%S")
Solution 2
After testing the accepted answer, I got the following error:
AssertionError: Expected a
date
, but got adatetime
. Refusing to coerce, as this may mean losing timezone information. Use a custom read-only field and deal with timezone issues explicitly.
Using the serializer field as datetime
solved the issue.
class StartListSerializer(serializers.Serializer):
# ...
time = serializers.DateTimeField(format="%Y-%m-%d %H:%M:%S")
Author by
nataila
Updated on July 09, 2022Comments
-
nataila almost 2 years
there is my serializer code:
serializer.pyclass StartListSerializer(serializers.Serializer): id = serializer.CharField() time = serializers.DateField(fromat=None, input_formats=None)
it will give me this:
'time': '2014-03-14T22:44:16.923000'
the input time format isdatetime.datetime(2014, 3, 14, 22, 44, 37, 280000)
But I want to get time like this2014-03-14 22:44:37
how can I change my serializer to get this time? -
nataila over 8 yearscan you help about this? stackoverflow.com/questions/34129830/…
-
Silko almost 5 yearsThis answer gives error for DateTime fields. Check @Flippym answer bellow.
-
Jari Turkia over 3 yearsThe format may have changed in recent versions. I have
serializers.DateField(format='YYYY-MM-DD')
.