gpt4 book ai didi

c# - 使用 System.Text.Json 在 ASP.NET Core 3.0 中格式化日期时间

转载 作者:行者123 更新时间:2023-12-01 16:08:44 34 4
gpt4 key购买 nike

我正在将 Web API 从 .NET Core 2.2 迁移到 3.0,并希望使用新的 System.Text.Json。使用 Newtonsoft 时,我可以使用下面的代码格式化 DateTime。我怎样才能实现同样的目标?

.AddJsonOptions(options =>
{
options.SerializerSettings.DateTimeZoneHandling = Newtonsoft.Json.DateTimeZoneHandling.Utc;
options.SerializerSettings.DateFormatString = "yyyy'-'MM'-'dd'T'HH':'mm':'ssZ";
});

最佳答案

使用自定义格式化程序解决。感谢 Panagiotis 的建议。

public class DateTimeConverter : JsonConverter<DateTime>
{
public override DateTime Read(ref Utf8JsonReader reader, Type typeToConvert, JsonSerializerOptions options)
{
Debug.Assert(typeToConvert == typeof(DateTime));
return DateTime.Parse(reader.GetString());
}

public override void Write(Utf8JsonWriter writer, DateTime value, JsonSerializerOptions options)
{
writer.WriteStringValue(value.ToUniversalTime().ToString("yyyy'-'MM'-'dd'T'HH':'mm':'ssZ"));
}
}


// in the ConfigureServices()
services.AddControllers()
.AddJsonOptions(options =>
{
options.JsonSerializerOptions.Converters.Add(new DateTimeConverter());
});

关于c# - 使用 System.Text.Json 在 ASP.NET Core 3.0 中格式化日期时间,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58102189/

34 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com