当前位置:   article > 正文

.Net6 JsonResult 格式化时间数据_net6 时间格式

net6 时间格式

.Net6 JsonResult 格式化时间数据

创建类 JsonOptionsExt
继承 JsonConverter<DateTime>
请求参数里面的时间数类型据也会被格式化

using System.Text.Json;
using System.Text.Json.Serialization;

namespace Code
{
	/// <summary>
	/// JsonResult 格式化时间数据
	/// 默认 "yyyy-MM-dd HH:mm:ss"
	/// </summary>
	public class JsonOptionsExt : JsonConverter<DateTime>
	{
		private readonly string Format;
		public JsonOptionsExt(string format= "yyyy-MM-dd HH:mm:ss")
		{
			Format = format;
		}
		public override void Write(Utf8JsonWriter writer, DateTime date, JsonSerializerOptions options)
		{
			writer.WriteStringValue(date.ToString(Format));
		}
		public override DateTime Read(ref Utf8JsonReader reader, Type typeToConvert, JsonSerializerOptions options)
		{
			// 获取时间类型的字符串
			var dt = reader.GetString();
            if (!string.IsNullOrEmpty(dt))
            {
            	//将日期与时间之间的"T"替换为一个空格,将结尾的"Z"去掉,否则会报错
				dt=dt.Replace("T", " ").Replace("Z", "");
				//取到秒,毫秒内容也要去掉,经过测试,不去掉会报错
                if (dt.Length > 19)
                {
					dt=dt.Substring(0, 19);
                }
				return DateTime.ParseExact(dt, Format, null);
			}
			return DateTime.Now;
		}
    }
}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
  • 37
  • 38
  • 39

使用

builder.Services.AddControllers().AddJsonOptions(options =>
{
    //时间格式化响应
    options.JsonSerializerOptions.Converters.Add(new JsonOptionsExt());
});
  • 1
  • 2
  • 3
  • 4
  • 5
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/小丑西瓜9/article/detail/586780
推荐阅读
相关标签
  

闽ICP备14008679号