码迷,mamicode.com
首页 > Windows程序 > 详细

C# 反序列化datetime的处理

时间:2017-04-22 19:49:30      阅读:1049      评论:0      收藏:0      [点我收藏+]

标签:public   return   com   好的   code   分享   adl   序列   static   

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.SerializeObject<DataTable>(json, timeConverter);
return dt;
}

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

C# 反序列化datetime的处理

标签:public   return   com   好的   code   分享   adl   序列   static   

原文地址:http://www.cnblogs.com/Jeff-Lai/p/6748749.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!