Получение missmatch в формате datetime с помощью сериализатора jms и ISO8601

Я получаю это сообщение:

Invalid datetime "2017-11-07T19:46:57.118Z", expected format Y-m-dTH:i:sP.

при использовании сериализатора JMS и конфигурации:

jms_serializer:
    handlers:
        datetime:
            default_format: 'Y-m-dTH:i:sP'

Я думаю, что моя поставленная дата находится в правильном формате, но, по-видимому, нет. Что-то не так с датой?

1 ответов


это сложно, я сталкивался с этим раньше. Я использовал аннотации, поэтому мое исправление выглядело так:

 @Serializer\Type("DateTime<'Y-m-d\TH:i:s.uT'>")

поэтому я предполагаю, что Ваш будет выглядеть так:

jms_serializer:
    handlers:
        datetime:
            default_format: 'Y-m-d\TH:i:s.uT'

или вам может потребоваться добавить еще одну косую черту перед "TH", если jms читает файлы yaml иначе, чем аннотации.

не могу точно вспомнить, почему это происходит, я просто помню, как пробовал сотни разных комбинаций, пока одна не сработала. Во всяком случае, даты и время трудные.