2016-10-25 2 views
0

Я использую Django Rest Framework для использования сообщений API, которые с .NET-сервера.Почему Django Rest Framework не анализирует iso-8061, сгенерированный JSON.net?

ISO-8061 дата время порождена Json.NET выглядит следующим образом:

"doTime": "2016-10-25T20:26:46.1726639Z" 

Мой сериализатору более или менее:

class DoStuffSerializer(serializers.Serializer): 
    timeformats = ["iso-8061", "rfc-3339", "%Y-%m-%dT%H:%M:%S.%fZ", "%Y-%m-%dT%H:%M:%SZ", "%Y-%m-%dT%H:%M:%S.%f", "%Y-%m-%dT%H:%M:%S"] 
    whereStuff = AddressSerializer(required=True) 
    doTime = serializers.DateTimeField(input_formats=timeformats, required=False) 

и ошибка сериализации:

{ 
    "doTime": [ 
     "Datetime has wrong format. Use one of these formats instead: 
      iso-8061, 
      rfc-3339, 
      YYYY-MM-DDThh:mm:ss.uuuuuuZ, 
      YYYY-MM-DDThh:mm:ssZ, 
      YYYY-MM-DDThh:mm:ss.uuuuuu, 
      YYYY-MM-DDThh:mm:ss" 
    ] 
} 

(отформатирован для четкости)

Я пытался учесть дополнительные десятичные разряды, но это не работает, поскольку десятичные числа из версии iso-8061 JSON.net проходят мимо микросекунд, а strythime Python задыхается.

.1726639z 
.uuuuuuZ 

любые предложения?

+2

Возможно, потому, что ISO 8061 касается альпийских лыжных привязок (https://www.iso.org/obp/ui/#iso:std:iso:8061:ed-4:v1:en), который имеет абсолютно ** НИЧЕГО ** делать с программированием. Может, ты имел в виду 8601? –

+2

(• _ •) (• _ •)> ⌐ ■ - ■ (⌐ ■ _ ■) – wim

+0

@MarcB вы можете поместить это в качестве ответа? – user3000326

ответ

1

Возможно, потому, что ISO 8061 касается альпийских лыжных привязок (http://iso.org/obp/ui/#iso:std:iso:8061:ed-4:v1:en), который абсолютно НЕОБХОДИМО сделать с программированием. Может, ты имел в виду 8601?

+0

Дислексия снова ударяет! – user3000326

+0

некоторые люди видят «ежедневный секс» как хорошую вещь. [Гм] –