有没有办法指定 WCF 数据服务返回的 DateTime 数据的格式?
这个问题似乎是说默认格式(看起来像/Date(1339515455030)/
)是自 1970 年 1 月 1 日午夜 UTC 以来的毫秒数。如果必须,我可以弄清楚如何解析它,但我宁愿指定更友好的格式。
有没有办法指定 WCF 数据服务返回的 DateTime 数据的格式?
这个问题似乎是说默认格式(看起来像/Date(1339515455030)/
)是自 1970 年 1 月 1 日午夜 UTC 以来的毫秒数。如果必须,我可以弄清楚如何解析它,但我宁愿指定更友好的格式。
OData DateTime 格式(假设您尚未将其格式化为字符串)取决于客户端和服务器之间协商的有线格式。上面的格式来自JSON Verbose,对应一个标准的 JavaScript Date 对象。Atom 格式不同,JSON Light 也不同。特别值得注意的是,我们决定放弃传统的 JavaScript 日期格式,转而支持 JSON Light 的ISO 8601。在任何这些情况下,如果您使用的是 WCF DS 客户端或 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
在 OData V3 中,JSON 详细格式使用 ISO 8601,这似乎对某些消费者更友好。请注意,仅当有效负载为 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 日期时间格式。
我相信您应该能够将发送回的字符串值反馈到 datetime.parse(http://msdn.microsoft.com/en-us/library/1k1skd40.aspx) 并且不必担心其余的
这是一个示例用法: http: //www.dotnetperls.com/datetime-parse