如何在django-rest-framework的序列化器中格式化时间?

时间:2015-12-07 08:49:00

标签: django serialization django-rest-framework

有我的序列化代码:
serializer.py

class StartListSerializer(serializers.Serializer):
    id = serializer.CharField()
    time = serializers.DateField(fromat=None, input_formats=None) 
它会给我这个:
'time': '2014-03-14T22:44:16.923000'
输入时间格式为datetime.datetime(2014, 3, 14, 22, 44, 37, 280000)
但我希望得到这样的时间2014-03-14 22:44:37
如何更改序列化器以获得此时间?

2 个答案:

答案 0 :(得分:12)

通常的Python日期时间格式可以使用:

time = serializers.DateField(format="%Y-%m-%d %H:%M:%S")

答案 1 :(得分:0)

测试接受的答案后,出现以下错误:

  

AssertionError:预期为date,但得到了datetime。拒绝胁迫,因为这可能意味着丢失时区信息。使用自定义只读字段并明确处理时区问题。

使用序列化程序字段为datetime解决了该问题。

class StartListSerializer(serializers.Serializer):

    # ...
    time = serializers.DateTimeField(format="%Y-%m-%d %H:%M:%S")