.net core中 在使用NewtonsoftJson的情况下如何去掉 时分秒 返回
C#论坛
老数据
1
1157
fate sta 发布于2023/2/14
悬赏:0 飞吻
您可以使用 Newtonsoft.Json 库中的 JsonConverter 类来实现将时间戳转换为不包含时分秒的格式。
下面是一个例子:
using System; using Newtonsoft.Json; using Newtonsoft.Json.Converters; public class DateConverter : JsonConverter { public override bool CanConvert(Type objectType) { return objectType == typeof(DateTime); } public override object ReadJson(JsonReader reader, Type objectType, object existingValue, JsonSerializer serializer) { return DateTime.Parse(reader.Value.ToString().Split('T')[0]); } public override void WriteJson(JsonWriter writer, object value, JsonSerializer serializer) { writer.WriteValue(((DateTime)value).ToString("yyyy-MM-dd")); } }
然后,您可以使用这个转换器来序列化/反序列化您的日期:
var json = JsonConvert.SerializeObject(new { Date = DateTime.Now }, new JsonSerializerSettings { Converters = new JsonConverter[] { new DateConverter() } });
这样,您就可以在 .NET Core 中使用 Newtonsoft.Json 去掉时分秒了。
热忱回答(1)
-
fate sta VIP02023/2/14
如果想全局使用可以:
在 .NET Core 中,您可以使用 Startup 类中的 ConfigureServices 方法来全局使用 JsonConverter。
using Microsoft.AspNetCore.Builder; using Microsoft.AspNetCore.Hosting; using Microsoft.Extensions.DependencyInjection; using Newtonsoft.Json; using Newtonsoft.Json.Converters; public class Startup { public void ConfigureServices(IServiceCollection services) { services.AddControllers().AddNewtonsoftJson(options => { options.SerializerSettings.Converters.Add(new DateConverter()); }); } public void Configure(IApplicationBuilder app, IWebHostEnvironment env) { app.UseRouting(); app.UseEndpoints(endpoints => { endpoints.MapControllers(); }); } }
这样,您就可以在整个应用程序中使用 JsonConverter 转换器了。
0 回复