欢迎光临

木子屋

标题: C# JSON类DataContractJsonSerializer序列化DateTime原理分析

作者: dnawo

日期: 2013-07-04 06:35 PM

分类: Win编程

内容: C#常用JSON类有两个：JavascriptSerializer和DataContractJsonSerializer，它们对同一DateTime对象(2013/7/4 12:00:00)序列化结果如下：
引用内容JavascriptSerializer序列化：\/Date(1372910400000)\/
DataContractJsonSerializer序列化：\/Date(1372910400000+0800)\/
1372910400000是怎么得来的？简单说明如下：
复制内容到剪贴板 程序代码DateTime basetime = DateTime.Parse("1970-01-01");
DateTime time = DateTime.Parse("2013/7/4 12:00:00");
long ticks = (time.ToUniversalTime().Ticks - basetime.Ticks) / 10000;
//long ticks = (long)(time.ToUniversalTime() - basetime).TotalMilliseconds;
Console.WriteLine(ticks); //1372910400000
知道了原理，反序列化时处理如下：
复制内容到剪贴板 程序代码DateTime basetime = DateTime.Parse("1970-01-01");
long ticks = basetime.Ticks + 1372910400000 * 10000;
DateTime time = new DateTime(ticks).ToLocalTime();
Console.WriteLine(time); //2013/7/4 12:00:00
客户端Javascript处理方法：
复制内容到剪贴板 程序代码var time=new Date();
time.setTime(1372910400000);
alert(time);

+ 查看当前日志评论 (0)

登录

────────────

木子屋

PJBlog3 v3.2.9.518 Inside.

Processed In 1.164 ms

返回

标题: C# JSON类DataContractJsonSerializer序列化DateTime原理分析

你没有权限发表评论

────────────

木子屋

PJBlog3 v3.2.9.518 Inside.

Processed In 1.164 ms

返回

暂无评论

返回

────────────

木子屋

PJBlog3 v3.2.9.518 Inside.

Processed In 1.211 ms

返回