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"} 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值