使用 jms 序列化程序和 ISO8601 获取日期时间格式的不匹配
Getting missmatch in datetime format using jms serializer and 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'
我认为我提供的日期格式正确,但显然不正确。是不是日期有问题?
这很难,我以前 运行 玩过。我正在使用注释,所以我的修复看起来像:
@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" 之前添加另一个斜杠。
不记得为什么会发生这种情况,我只记得尝试了一百种不同的组合,直到一个成功。无论如何,日期和时间很难。
jms_serializer:
handlers:
datetime:
default_format: 'Y-m-d\TH:i:s.uP'
如果你想serialize/deserialize使用'Y-m-d\TH:i:s.uP' joda DateTime
(在客户端使用 joda DateTimeConverter)
我收到这条消息:
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'
我认为我提供的日期格式正确,但显然不正确。是不是日期有问题?
这很难,我以前 运行 玩过。我正在使用注释,所以我的修复看起来像:
@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" 之前添加另一个斜杠。
不记得为什么会发生这种情况,我只记得尝试了一百种不同的组合,直到一个成功。无论如何,日期和时间很难。
jms_serializer:
handlers:
datetime:
default_format: 'Y-m-d\TH:i:s.uP'
如果你想serialize/deserialize使用'Y-m-d\TH:i:s.uP' joda DateTime
(在客户端使用 joda DateTimeConverter)