public static DateTime JsonToDateTime(string jsonDate) { string value = jsonDate.Substring(6, jsonDate.Length - 8); DateTimeKind kind = DateTimeKind.Utc; int index = value.IndexOf('+', 1); if (index == -1) index = value.IndexOf('-', 1); if (index != -1) { kind = DateTimeKind.Local; value = value.Substring(0, index); } long javaScriptTicks = long.Parse(value, System.Globalization.NumberStyles.Integer, System.Globalization.CultureInfo.InvariantCulture); long InitialJavaScriptDateTicks = (new DateTime(1970, 1, 1, 0, 0, 0, DateTimeKind.Utc)).Ticks; DateTime utcDateTime = new DateTime((javaScriptTicks * 10000) + InitialJavaScriptDateTicks, DateTimeKind.Utc); DateTime dateTime; switch (kind) { case DateTimeKind.Unspecified: dateTime = DateTime.SpecifyKind(utcDateTime.ToLocalTime(), DateTimeKind.Unspecified); break; case DateTimeKind.Local: dateTime = utcDateTime.ToLocalTime(); break; default: dateTime = utcDateTime; break; } return dateTime ; } [解决办法] 在你后台序列化时候不要用datetime类型,直接用string类型,然后序列化,在前台反序列化就不会出现这个问题了 也就是在你的NUser类中这么设置属性string date,你的应该是datetime date [解决办法] 参考
http://kb.cnblogs.com/a/2365098/ [解决办法] using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Text.RegularExpressions;
namespace HKH.Web.MVC { public class DateTimeHelper { /// <summary> /// Parse Json data string to C# DateTime /// </summary> /// <param name="jsonDate"></param> /// <returns></returns> public static DateTime FromJson(string jsonDate) { return FromJson(jsonDate, DateTimeKind.Local); }
/// <summary> /// Parse Json data string to C# DateTime /// </summary> /// <param name="jsonDate"></param>
/// <param name="kind"></param> /// <returns></returns> public static DateTime FromJson(string jsonDate, DateTimeKind kind) { Regex regex = new Regex(@"^/Date\(([0-9]+)(\+[0-9]+)?\)/$");
long InitialJavaScriptDateTicks = (new DateTime(1970, 1, 1, 0, 0, 0, DateTimeKind.Utc)).Ticks; DateTime utcDateTime = new DateTime(long.Parse(regex.Replace(jsonDate, "$1")) * 10000 + InitialJavaScriptDateTicks, DateTimeKind.Utc);
//add static method to Date class Date.fromJson = function(jsonDateString) { return eval(jsonDateString.replace(new RegExp('\/Date\\((-?[0-9]+)\\)\/', 'g'), "new Date($1)")); };
[解决办法]
[解决办法]
正则得改一下
string pattern = @"\\/Date\((\d+)\+\d+\)\\/"; [解决办法] function ParseDate(jsonDate) { var date = new Date(parseInt(jsonDate.substr(6))); return date.getFullYear()+"-" + (date.getMonth()+1) + "-" + date.getDate() + " " + date.getHours() + ":" + date.getMinutes() + ":" + date.getSeconds(); }