将.NET DateTime转换为JSON

可能重复:
如何格式化JSON日期?

我的网站服务正在将DateTime返回给jQuery调用。 该服务以这种格式返回数据:

/Date(1245398693390)/

我怎样才能将它转换成JavaScript友好的日期?


从时代开始返回的是毫秒。 你可以这样做:

var d = new Date();
d.setTime(1245398693390);
document.write(d);

有关如何根据需要精确设置日期的格式,请参阅http://www.w3schools.com/jsref/jsref_obj_date.asp上的完整Date参考

您可以通过解析整数来除去非数字(如此处所示):

var date = new Date(parseInt(jsonDate.substr(6)));

或者应用以下正则表达式(来自Tominator的评论):

var jsonDate = jqueryCall();  // returns "/Date(1245398693390)/"; 
var re = /-?d+/; 
var m = re.exec(jsonDate); 
var d = new Date(parseInt(m[0]));

我一直在使用这种方法:

using System;

public static class ExtensionMethods {
  // returns the number of milliseconds since Jan 1, 1970 (useful for converting C# dates to JS dates)
  public static double UnixTicks(this DateTime dt)
  {
    DateTime d1 = new DateTime(1970, 1, 1);
    DateTime d2 = dt.ToUniversalTime();
    TimeSpan ts = new TimeSpan(d2.Ticks - d1.Ticks);
    return ts.TotalMilliseconds;
  }
}

假设你正在开发.NET 3.5,它是一个直接复制/粘贴。 你可以用它来移植它。

您可以将其封装在JSON对象中,或者将其写入响应流。

在Javascript / JSON方面,您只需将刻度线传入新的Date对象即可将其转换为日期:

jQuery.ajax({
  ...
  success: function(msg) {
    var d = new Date(msg);
  }
}

使用带反向引用的String.replace解析日期字符串:

var milli = "/Date(1245398693390)/".replace(//Date((-?d+))//, '$1');
var d = new Date(parseInt(milli));
链接地址: http://www.djcxy.com/p/7997.html

上一篇: Converting .NET DateTime to JSON

下一篇: What is "X