Я использую 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
любые предложения?
Возможно, потому, что ISO 8061 касается альпийских лыжных привязок (https://www.iso.org/obp/ui/#iso:std:iso:8061:ed-4:v1:en), который имеет абсолютно ** НИЧЕГО ** делать с программированием. Может, ты имел в виду 8601? –
(• _ •) (• _ •)> ⌐ ■ - ■ (⌐ ■ _ ■) – wim
@MarcB вы можете поместить это в качестве ответа? – user3000326