json.net序列化日期格式的类型

  1. 如果一个实体类里所有的时间即DateTime类型的字段,都处理成统一格式的话,使用统一格式
     IsoDateTimeConverter timeFormat = new IsoDateTimeConverter();
     timeFormat.DateTimeFormat = "yyyy-MM-dd HH:mm:ss";
     JsonConvert.SerializeObject(stu, Newtonsoft.Json.Formatting.Indented,timeFormat);

    如上代码,可以任意修改DateTimeFormat的日期显示格式,stu是需要格式化的对象。

  2. 如果对象中不同属性或者字段需要返回的格式不一致,比如有的需要年月日,有的是年月日时分秒,可以通过定义属性来解决
    public class student
        {
            public string Name { get; set; }
            public int Age { get; set; }
    //通过属性格式 [JsonConverter(
    typeof(DateFormat))] public DateTime BirthDay { get; set; }
    //通过属性处理格式 [JsonConverter(
    typeof(DateTimeFormat))] public DateTime CreateTime { get; set; } } public class DateFormat:IsoDateTimeConverter { public DateFormat() { base.DateTimeFormat = "yyyy-MM-dd"; } } public class DateTimeFormat:IsoDateTimeConverter { public DateTimeFormat() { base.DateTimeFormat = "yyyy-MM-dd HH:mm:ss"; } }

    演示:result = {"Name":"张三","Age":30,"BirthDay":"1986-07-16","CreateTime":"2016-01-16 23:13:34"}

    student stu = new student()
                {
                    Name = "张三",
                    Age = 30,
                    BirthDay = new DateTime(1986, 7, 16),
                    CreateTime = DateTime.Now
                };
                string result = JsonConvert.SerializeObject(stu);

猜你喜欢

转载自www.cnblogs.com/LGDD/p/9356961.html