将.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