我有一个带有java.util.Date属性的对象,我正在使用AE Cloud Endpoints服务进行序列化。从客户端,当我发送日期时,一切正常(例如:'2013-05-27')。当我尝试添加时间时,它会失败:
{ “错误”:{ “message”:“com.google.appengine.repackaged.org.codehaus.jackson.map.JsonMappingException:无效的日期/时间格式:2013-05-27T12:00(通过参考链:com.foo.MyObject [\”日期] \ “])” } }
我能找到的杰克逊默认日期格式的最佳资源是:http://wiki.fasterxml.com/JacksonFAQDateHandling。我尝试了完整的ISO-8601“1970-01-01T00:00:00.000 + 0000”,但也失败了。我还尝试了一个UNIX时间戳,它在解析时没有失败,但在1372年设置了一个日期。
所以两部分问题。一,使用正确的默认格式是什么?还有两个,我们可以修改(我们有权访问)jackson配置,以便我们可以设置自己的序列化格式吗?
答案 0 :(得分:11)
看起来它接近RFC 3339标准,小数秒似乎需要3位精度,例如:
1985-04-12T23:20:50.520Z
如果您使用自己的包含Date
字段的API进行尝试,则会匹配API Explorer返回的内容。
关于自己处理序列化,您无法访问Jackson配置,但您可以访问自定义端点序列化选项(例如,请参阅@ApiSerializationProperty
)。