gpt4 book ai didi

nodatime - 如何在 ASP.NET Core 2.1 中全局格式化 NodaTime 日期字符串?

转载 作者:行者123 更新时间:2023-12-03 18:25:25 26 4
gpt4 key购买 nike

目前,我正在尝试使用 JsonFormatters用于序列化 ISO 8601 中的字符串规范格式在我的启动配置中,但无法使其工作。

我的启动配置如下:

services.AddMvcCore(
(options) => {
options.SslPort = 44321;
options.Filters.Add(new RequireHttpsAttribute());
}
)
.AddJsonFormatters(jsonSerializerSettings => {
jsonSerializerSettings.DateParseHandling = DateParseHandling.None;
jsonSerializerSettings.DateFormatString = "yyyy-MM-ddTHH:mm:ss.fffZ";
})
.AddApiExplorer()
.AddJsonOptions(options => {
options.AllowInputFormatterExceptionMessages = false;
options.SerializerSettings.ReferenceLoopHandling = Newtonsoft.Json.ReferenceLoopHandling.Ignore;
})
.SetCompatibilityVersion(CompatibilityVersion.Version_2_1)
.AddViewLocalization(LanguageViewLocationExpanderFormat.Suffix)
.AddDataAnnotationsLocalization();

我也试过 ServiceStackText这是在 documentation 中提到的,但这也不起作用。
 NodaSerializerDefinitions.LocalTimeSerializer.ConfigureSerializer();
DateTimeZoneProviders.Tzdb
.CreateDefaultSerializersForNodaTime()
.ConfigureSerializersForNodaTime();

我不断得到以下格式,

即对于 LocalDate序列化:
{
"patientDob": "Thursday, June 15, 2017",
}

如何配置字符串 ISO 8601规范 NodaTime 的格式全局日期类型?

我的模型,
{
public LocalDate patientDob { get; set; }
}

和我的 View 模型/API 资源:
{
public string patientDob { get; set; }
}

最佳答案

这是您的 Controller 中的问题:

res.NodaLocalDateString = apiResource.NodaLocalDate = nodaModel.NodaLocalDate.ToString ();

您没有转换 LocalDate完全变成JSON;您正在将字符串转换为 JSON,并通过调用 LocalDate.ToString() 获取该字符串.

将您的 API 资源更改为具有 LocalDate属性而不是 string属性,以便转换由 Json.NET 完成,而不是您调用 ToString() .

关于nodatime - 如何在 ASP.NET Core 2.1 中全局格式化 NodaTime 日期字符串?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50713459/

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