将 .NET DateTime 转换为 JSON
2022-08-30 00:41:27
可能的重复:
如何格式化JSON日期?
我的 Web 服务正在将 DateTime 返回到 jQuery 调用。该服务按以下格式返回数据:
/Date(1245398693390)/
如何将其转换为对 JavaScript 友好的日期?
可能的重复:
如何格式化JSON日期?
我的 Web 服务正在将 DateTime 返回到 jQuery 调用。该服务按以下格式返回数据:
/Date(1245398693390)/
如何将其转换为对 JavaScript 友好的日期?
返回的是自 epoch 以来的毫秒。你可以做:
var d = new Date();
d.setTime(1245398693390);
document.write(d);
有关如何完全按照所需的格式设置日期,请参阅 http://www.w3schools.com/jsref/jsref_obj_date.aspDate
您可以通过解析整数来去除非数字(如此处所示):
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);
}
}