如何从 rest/WCF/enity/sqlserver 日期时间"/Date(xxxxxxxxxxxxxxx-xxxx)/"字符串中提取日期和时间?



我使用 ResponseFormat = WebMessageFormat.Json 通过 WCF 返回 JSON从使用实体框架访问的 SQL 后端。

我的查询正在返回

    {
  "DateInserted": "/Date(1435640400000-0500)/",
  "DateUpdated": "/Date(1454699734160-0600)/",

其中插入到我的数据库中的日期是 2015-06-30 00:00:00.000和日期更新在我的数据库中是 2016-02-05 13:15:34.160

但是我无法找到有关 Date(( 字符串代表什么数字的任何信息,也无法找到日期时间转换为该字符串表示形式的位置,因此您可以分享的任何信息可能对我有所帮助。

DateTime 值以"/Date(700000

+0500(/"的形式显示为 WCF JSON 字符串,其中第一个数字(在提供的示例中为 700000(是自 1970 年 1 月 1 日午夜以来 GMT 时区(常规(非夏令时(时间(中的毫秒数。该数字可能为负数以表示较早的时间。示例中由"+0500"组成的部分是可选的,指示时间是本地类型 - 即,应在反序列化时转换为本地时区。如果不存在,则时间反序列化为 Utc。实际数字(在本例中为"0500"(及其符号(+或-(将被忽略。

以下 Javascript 函数仅使用日期字符串的第一部分创建新的 Javascript 日期,例如,自 1970 年 1 月 1 日午夜以来的毫秒数。Javascript Date 构造函数将创建一个具有正确语言环境时间的日期。

String.prototype.toDateFromWcfJsonString = function()
{
   return eval(this.replace(//Date(([-|+]*d+)([+|-]d+)*)//, "new Date($1)"));
};

另请参阅 http://msdn.microsoft.com/en-us/library/bb412170(v=vs.90(.aspx。

最新更新