提问人:Abhiram M 提问时间:9/27/2023 最后编辑:journpyAbhiram M 更新时间:9/27/2023 访问量:61
C# Web API 中 API 响应的 DateTime 值显示基于 .NET 版本的不同行为
DateTime value of an API's response in C# web API shows different behavior based on .NET version
问:
我有一个简单的 C# Web API。
[HttpGet]
public DateTime GetDateResponse()
{
var a = DateTime.Parse("2023-09-26 12:28:20.793");
return a;
}
当我在 .NET Framework 4.7.2 中运行它时,我得到以下结果:
2023-09-26T12:28:20.793Z
但是,当我在 .NET 6 Web API 中运行此操作时,结果变为:
2023-09-26T12:28:20.793
.NET Framework 将结果解释为 UTC,但 .NET 6 没有时区信息,即使这两个对象的属性都是“未指定”Kind
DateTime
我相信 .NET 6 中的行为是正确的,因为没有时区信息,它不应该将其解释为 UTC。
但是,我正在将我的应用程序从 .NET Framework 迁移到 .NET 6,并且这种行为更改导致我的所有日期值在客户端中显示为错误。有什么办法可以控制这一点吗?比如使用中间件或其他东西进行配置以具有与以前相同的行为?
请注意,当我们返回 时,两个版本的行为是相同的DateTime.Now
[HttpGet]
public DateTime GetDateResponse()
{
var a = DateTime.Now;
return a;
}
嗯,不完全相同,在 .NET 框架中,它将当前日期转换为 UTC 并在末尾给出结果。在 .NET 6 中,它还会在结果中追加时区,如下所示。但这很好,因为这两个结果指的是同一时间。Z
答: 暂无答案
评论
DateTime
DateTime
CultureInfo.CurrentCulture