有没有办法指定WCF数据服务返回的DateTime数据的格式?
This question似乎说,默认格式看起来像/Date(1339515455030)/
,是自1970年1月1日午夜以来的毫秒数。如果有必要的话,我可以找出如何解析它,但我更愿意指定一种更友好的格式。
发布于 2012-07-12 08:46:01
OData DateTime格式(假设您还没有将其格式化为字符串)取决于客户机和服务器之间协商的wire格式。上面的格式来自JSON Verbose,对应于一个标准的JavaScript Date对象。Atom format是不同的,JSON Light也不同。特别要注意的是,我们决定放弃传统的JavaScript日期格式,转而使用ISO 8601 for JSON Light。在这些情况下,如果您正在使用诸如WCF客户端或data.js之类的客户端,客户端将负责正确地反序列化该值。
轻量级原子格式日期:<d:OrderDate m:type="Edm.DateTime">1996-07-04T00:00:00</d:OrderDate>
"OrderDate":"\/Date(836438400000)\/"
"ShippedDate":"1996-07-16T00:00:00"
有关各种平台上的当前客户端库,请参阅此处:http://www.odata.org/libraries
发布于 2012-07-13 02:19:44
对于OData V3,JSON Verbose格式使用ISO8601,这似乎对一些消费者更友好。但请注意,只有在有效负载为V3时才会使用它。所以你需要更新你的服务器端到超级OData V3 (如果它是WCF,那么你想要使用WCF 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日期时间格式。
发布于 2012-07-12 07:13:52
我相信您应该能够将发送回datetime.parse(http://msdn.microsoft.com/en-us/library/1k1skd40.aspx)的字符串值提供给它,而不必担心剩下的事情
https://stackoverflow.com/questions/11442836
复制相似问题