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



我收到此消息:

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

使用 JMS 序列化程序和配置时:

jms_serializer:
    handlers:
        datetime:
            default_format: 'Y-m-d\TH:i:sP'

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

这是一个艰难的问题,我以前遇到过。我正在使用注释,所以我的修复看起来像:

 @SerializerType("DateTime<'Y-m-dTH:i:s.uT'>")

所以我猜你的会看起来像:

jms_serializer:
    handlers:
        datetime:
            default_format: 'Y-m-dTH:i:s.uT'

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

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

jms_serializer:
handlers:
    datetime:
        default_format: 'Y-m-dTH:i:s.uP'

使用'Y-m-d\TH:i:s.uP' 如果你想序列化/反序列化 joda DateTime

(在客户端上使用 joda DateTimeConverter)

最新更新