我刚升级到OData库的RTM版本。我注意到了DateTime处理中出现的不一致之处,并想知道是否有人可以解释我可能会丢失的内容,或者实际上是否存在某些问题。除了RTM库之外,我还依靠MS-ODATA的3/30/2012版本。OData库RTM日期时间不一致性
MS-ODATA定义dateTimeUriLiteral以下面的格式(简化的举例):
YYYY-MM-DDTHH:MM:SS.NS其中NS被定义为纳秒= 1 * 7位
和MS -ODATA将VJsonDateTime定义为可怕的/Date(...)/格式。
但是,在详细的JSON序列化中使用库时,我们看到dateTimeUriLiteral格式,而不是VJsonDateTime。此外,反序列化只接受dateTimeUriLiteral格式。这看起来像是规范和实现之间的冲突。
此外,dateTimeUriLiteral不考虑时区偏移(例如在ISO 8601格式中就是这种情况)。但是,当序列化的日期时间对象被指定为DateTimeKind.Utc时,我们会看到该库发出'Z'终止字符(UTC的ISO 8601)。这也看起来像规范和实现之间的冲突。另外,当我们使用库来反序列化具有终止'Z'的dateTimeUriLiteral时 - 反序列化的对象被标记为DateTimeKind.Local。 UTC指示符是否存在规格问题WRT支持,这看起来不是正确的。 'Z'会导致反序列化失败,或者导致标记为UTC(不是本地)的时间。
嗨,evoskuil - 我们在周五发布了一些预发布位,我们认为这将有助于解决这个问题 - 您是否可以尝试并在博客文章中提供一些反馈? http://blogs.msdn.com/b/astoriateam/archive/2012/04/20/wcf-data-services-5-1-0-rc-prerelease.aspx – 2012-04-23 18:35:20