symfony - 使用 jms 序列化程序和 ISO8601 获取日期时间格式不匹配

标签 symfony doctrine iso8601 jmsserializerbundle jms-serializer

我收到这条消息:

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

使用 JMS Serializer 和配置时:
jms_serializer:
    handlers:
        datetime:
            default_format: 'Y-m-d\\TH:i:sP'

我认为我提供的日期格式正确,但显然不是。日期有问题吗?

最佳答案

这很难,我以前遇到过。我正在使用注释,所以我的修复看起来像:

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

所以我猜你的看起来像:
jms_serializer:
    handlers:
        datetime:
            default_format: 'Y-m-d\TH:i:s.uT'

或者,如果 jms 读取 yaml 文件的方式与注释不同,则您可能需要在“TH”之前添加另一个斜杠。

不记得到底为什么会发生这种情况,我只记得尝试了一百种不同的组合,直到一种成功。无论如何,日期和时间都很难。

关于symfony - 使用 jms 序列化程序和 ISO8601 获取日期时间格式不匹配,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47160808/

相关文章:

symfony - 在 symfony2 表单中使用 isValid() 不验证子类型

php - 如何使用 Doctrine QueryBuilder 或 EntityManager 通过多对多相关实体查找实体

postgresql - Doctrine 的 DQL 没有正确生成查询

ruby - 将 ruby​​ 时间实例格式化为 2014-09-19T15 :40:24Z

forms - 针对数组 Symfony2 验证选择字段

login - 自定义身份验证 - 登录 Symfony2 消息

python - ISO 8601 日期时间格式 : parse 11:05:14 PM into 23:05:14

date - 如何从busybox中的 "date"获取ISO8601秒格式?

symfony - 使用基本 http 身份验证的 REST 单元测试始终为 401 Unauthorized

doctrine - Doctrine 鉴别器如何知道要使用 map 中的哪个实体