JavaScriptSerializer 序列化json 时间格式

以下是代码:
实体
 public class jsonmm

    {  
       public string Name { get; set; }

       public int Age { get; set; }
       //[ScriptIgnore]
       public DateTime LastLoginTime { get; set; }

    }
方法:
 public string ScriptSerialize<T>(T t)
       {

           JavaScriptSerializer js = new JavaScriptSerializer();

           return js.Serialize(t);

       }
页面测试:
 Code.json pp = new Code.json();
        Code.jsonmm p = new Code.jsonmm();

        p.Name = "张三";

        p.Age = 28;
    
        p.LastLoginTime = DateTime.Now.ToUniversalTime();
 string jsonString = pp.ScriptSerialize<Code.jsonmm>(p);
        Response.Write(jsonString);

时间已经转换为utc格式了,可还是得出这样的数据
{"Name":"张三","Age":28,"LastLoginTime":"\/Date(1313572554031)\/"}
怎么修改呢

 

 

 

=====================================================================

JavaScriptSerializer的行为是这样的,你可以在客户端再处理一下

JavaScript code?
1
2
3
4
var json = { "Name""张三""Age": 28, "LastLoginTime""\/Date(1313572554031)\/" };
//把/删除,并转换为正确的javascript时间
json.LastLoginTime = eval('new ' + (json.LastLoginTime.replace(/\//g, '')));
alert(json.LastLoginTime);
 
============================================================================
 
1
2
3
4
5
6
7
8
9
10
11
12
        Model m = new Model { Id = 1, Dt = DateTime.Now };
        JavaScriptSerializer js = new JavaScriptSerializer();
        string str = js.Serialize(m);
        str = Regex.Replace(str, @"\\/Date\((\d+)\)\\/", match => 
        {
            DateTime dt = new DateTime(1970, 1, 1);
            dt = dt.AddMilliseconds(long.Parse(match.Groups[1].Value));
            dt = dt.ToLocalTime();
           return dt.ToString("yyyy-MM-dd HH:mm:ss");
        });
        Response.Write(str);
//{"Id":1,"Dt":"2011-08-17 17:38:47"} 
posted @ 2013-05-30 11:34  左正  阅读(585)  评论(0编辑  收藏  举报