• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    迪恩网络公众号

C#反序列化datetime的处理

原作者: [db:作者] 来自: [db:来源] 收藏 邀请

Newtonsoft.Json.dll(获取最新版,我使用的是8.0)提供了非常好的Json序列化和反序列化方式,但是对日期的处理却让我纠结了很久。首先定义类如下:

public class Student{
    public int Id{get;set;}
    public string Name{get;set;}
    public DateTime BirthDay{get;set;}
}

序列化代码如下:

Student stu = new Student()
{
    Id = 1,
    Name = "zhangsan",
    BirthDay = DateTime.Now
};
String result = Newtonsoft.Json.JsonConvert.SerializeObject(stu);
Console.WriteLine(result);
Console.ReadLine();

结果是:{"Id":1,"Name":"zhangsan","BirthDay":"2016-08-03T17:23:54.2480422+08:00"}

修改代码如下:

Student stu = new Student()
{
    Id = 1,
    Name = "zhangsan",
    BirthDay = DateTime.Now
};
Newtonsoft.Json.Converters.IsoDateTimeConverter timeConverter = new Newtonsoft.Json.Converters.IsoDateTimeConverter();
//这里使用自定义日期格式,如果不使用的话,默认是ISO8601格式
timeConverter.DateTimeFormat = "yyyy-MM-dd HH:mm:ss";
String result = Newtonsoft.Json.JsonConvert.SerializeObject(stu, Newtonsoft.Json.Formatting.None, timeConverter);
Console.WriteLine(result);
Console.ReadLine();

结果是:{"Id":1,"Name":"zhangsan","BirthDay":"2016-08-03 17:32:03"}

另,延伸方法:

public static DataTable ConvertToDataTable(string json)
{
Newtonsoft.Json.Converters.IsoDateTimeConverter timeConverter = new Newtonsoft.Json.Converters.IsoDateTimeConverter();
//这里使用自定义日期格式,如果不使用的话,默认是ISO8601格式
timeConverter.DateTimeFormat = "yyyy-MM-dd HH:mm:ss";
DataTable dt = Newtonsoft.Json.JsonConvert.DeserializeObject<DataTable>(json, timeConverter);
return dt;
}

 感谢好友:http://www.cnblogs.com/duanjt/p/5733791.html


鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
上一篇:
在c#中其实滚动屏幕发布时间:2022-07-13
下一篇:
C#常用算法发布时间:2022-07-13
热门推荐
热门话题
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap