2012-07-11 102 views
2

是否有方法指定由WCF数据服务返回的DateTime数据的格式?指定WCF数据服务的日期时间格式

This question似乎是说,默认格式,看起来像/Date(1339515455030)/,是从1970年1月1日午夜开始的毫秒数。我可以想出如何解析,如果我必须,但我宁愿指定一个更友好的格式。

回答

1

的OData的DateTime格式(假设你没有已经格式化它为一个字符串)是依赖于客户端和服务器之间协商的有线格式。上面的格式是从JSON Verbose,并对应于一个标准的JavaScript日期对象。 Atom format是不同的,而JSON灯仍然不同。特别值得注意的是,我们决定从传统的JavaScript日期格式转向支持JSON Light的ISO 8601。在这些情况中的任何一种情况下,如果您使用的是WCF DS客户端或data.js等客户端,那么客户端将会正确地对该值进行反序列化。

  • 的Atom格式的日期:<d:OrderDate m:type="Edm.DateTime">1996-07-04T00:00:00</d:OrderDate>
  • JSON详细格式的日期:"OrderDate":"\/Date(836438400000)\/"
  • JSON光格式的日期:"ShippedDate":"1996-07-16T00:00:00"

有关各种平台当前的客户端库,在这里看到:http://www.odata.org/libraries

0

我相信你应该能够提供返回到datetime.parse(http://msdn.microsoft.com/en-us/library/1k1skd40.aspx)的字符串值,而不应该担心其余

下面是一个例子用法:http://www.dotnetperls.com/datetime-parse

+0

如果将使用此服务的客户端不是基于.NET的,该怎么办? – 2012-07-11 23:32:18

1

对于OData V3,JSON详细格式使用ISO 8601,它似乎更适合s消费者。请注意,只有在有效载荷为V3时才会使用它。因此,您需要将服务器端更新为超级OData V3(如果它是WCF DS,那么您需要使用WCF DS 5.0版本,例如可在NuGet http://blogs.msdn.com/b/astoriateam/archive/2012/05/18/wcf-data-services-5-0-1-released.aspx上找到)。

一旦你有了这些,你可能需要强制服务器在响应负载中使用V3,因为默认情况下它将使用响应的最低版本。这可以通过发送一个MinDataServiceVersion来完成:3.0;标题与来自客户端的请求。

之后,即使JSON详细有效负载应使用ISO日期时间格式。

相关问题