视频1 视频21 视频41 视频61 视频文章1 视频文章21 视频文章41 视频文章61 推荐1 推荐3 推荐5 推荐7 推荐9 推荐11 推荐13 推荐15 推荐17 推荐19 推荐21 推荐23 推荐25 推荐27 推荐29 推荐31 推荐33 推荐35 推荐37 推荐39 推荐41 推荐43 推荐45 推荐47 推荐49 关键词1 关键词101 关键词201 关键词301 关键词401 关键词501 关键词601 关键词701 关键词801 关键词901 关键词1001 关键词1101 关键词1201 关键词1301 关键词1401 关键词1501 关键词1601 关键词1701 关键词1801 关键词1901 视频扩展1 视频扩展6 视频扩展11 视频扩展16 文章1 文章201 文章401 文章601 文章801 文章1001 资讯1 资讯501 资讯1001 资讯1501 标签1 标签501 标签1001 关键词1 关键词501 关键词1001 关键词1501 专题2001
Json.net日期格式化设置方式
2020-11-27 22:34:45 责编:小采
文档


Json.net默认的时间格式化后带T,不符合一般的业务要求,重新设置JSON.NET的默认日期格式化方式,代码如下:

 /// <summary>
 /// Json.net默认转换设置
 /// </summary>
 private static void DefaultJsonConvertSetting()
 {
 JsonSerializerSettings setting = new JsonSerializerSettings();
 JsonConvert.DefaultSettings = new Func<JsonSerializerSettings>(() =>
 {
 //日期类型默认格式化处理
 setting.DateFormatHandling = DateFormatHandling.MicrosoftDateFormat;
 setting.DateFormatString = "yyyy-MM-dd HH:mm:ss";

 //空值处理
 //setting.NullValueHandling = NullValueHandling.Ignore;

 return setting;
 });
 }

下面看下Json.Net 使用属性定义日期的序列化格式

如果一个实体类里所有的时间即DateTime类型的字段,都处理成统一格式的话,可以使用如下方式:

IsoDateTimeConverter timeFormat = new IsoDateTimeConverter();
 timeFormat.DateTimeFormat = "yyyy-MM-dd HH:mm:ss";
 JsonConvert.SerializeObject(stu, Newtonsoft.Json.Formatting.Indented, timeFormat);

如果需要返回的格式不一致,比如有的需要年月日,有的是年月日时分秒,则这样控制不了。可以通过定义属性来解决

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";
 }
 }

实例演示:

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

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

这样控制的粒度更细了

总结

以上所述是小编给大家介绍的Json.net日期格式化设置方式,希望对大家有所帮助,如果大家有任何疑问欢迎给我留言,小编会及时回复大家的!

下载本文
显示全文
专题