不错呦!smile@林凯西,确保“准备文件”中的几个文件都有安装,S...您好,看了您这篇帖子觉得很有帮助。但是有个问题想请...我的修改过了怎么还被恶意注册呢 @jjjjiiii 用PJ快9年了,主要是A...PJ3啊,貌似很少有人用PJ了,现在不是WP就是z...@332347365,我当时接入时错误码没有-10...楼主,ChkValue值应为-103是什么意思呢?...大哥 你最近能看到我发的信息,请跟我联系,我有个制...
C# JSON类DataContractJsonSerializer序列化DateTime原理分析
编辑:dnawo 日期:2013-07-04
C#常用JSON类有两个:JavascriptSerializer和DataContractJsonSerializer,它们对同一DateTime对象(2013/7/4 12:00:00)序列化结果如下:
引用内容
1372910400000是怎么得来的?简单说明如下:
知道了原理,反序列化时处理如下:
客户端Javascript处理方法:

JavascriptSerializer序列化:\/Date(1372910400000)\/
DataContractJsonSerializer序列化:\/Date(1372910400000+0800)\/
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 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
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);
time.setTime(1372910400000);
alert(time);

评论: 0 | 引用: 0 | 查看次数: 5826
发表评论
请登录后再发表评论!