【发布时间】:2013-09-09 05:52:43
【问题描述】:
我正在开发一个 API 来使用 ASP.NET Web API 公开一些数据。
在其中一个 API 中,客户端希望我们以 yyyy-MM-dd 格式公开日期。我不想为此更改全局设置(例如GlobalConfiguration.Configuration.Formatters.JsonFormatter),因为它非常特定于该客户端。我确实在为多个客户开发解决方案。
我能想到的解决方案之一是创建一个自定义 JsonConverter,然后将其放入我需要进行自定义格式设置的属性
例如
class ReturnObjectA
{
[JsonConverter(typeof(CustomDateTimeConverter))]
public DateTime ReturnDate { get;set;}
}
只是想知道是否有其他简单的方法可以做到这一点。
【问题讨论】:
-
对于它的价值,API 是为了计算机可读性,而不是用户可读性,因此最好坚持使用单一指定的日期格式,例如 ISO 8601。如果客户端直接向用户显示 API 结果,或者为 API 编写自己的日期解析代码,那么他们做错了。格式化显示日期应留给最顶层的 UI 层。
-
使用 Visual Studio 2019 创建 Web API,由Formatting DateTime in ASP.NET Core 3.0 using System.Text.Json修复
-
我避免在我的 DTO 中添加 Json.NET 细节。相反,我有你提到的 DTO 日期属性为
strings,它们使用共享的const string值格式化。
标签: c# datetime asp.net-web-api json.net